类,接口,抽象类,结构

一、:

  1. 对现实生活中的事物的行为,特征的描述,分类.比如:人类,人具有姓名,国籍,年龄,性别特征,吃饭,睡觉的行为.特征可以理解为属性,特征理解为方法.
  2. 定义类的关键字:Class
  3. 定义类的规范:访问修饰符   Class  类名 {类的成员(方法,属性,字段,事件)}
  4. 访问修饰符:

Public:公共修饰符,无访问限制.

Private:私有修饰符,在类的内部可以访问.

Internal: 内置修饰符,在同一项目里可以访问.

Protected:受保护的修饰符,类的内部和继承该类的子类可以访问.

Protected Internal:内部保护访问,限于本项目内或子类访问.

  1. 类的访问修饰符默认是public.类的成员默认修饰符private.
  2. 类可以定位static静态类,但类的成员都要定义为static静态的.
  3. 实例化类:类名 对象名 =new 类名();

代码:

 class A

    {

        public string Name { get; set; }

        public bool Sex { get; set; }

        public string Age { get; set; }

        public string Country { get; set; }

        public string Eat(string Name)

        {

            switch (strCountry)

            {

                case "小明":

                    return "在吃饭";

                case "小红":

                    return "爱吃中餐";

                default:return "在睡觉";

            }

        }

    }

二,接口

接口关键字:Interface

1、一个接口就相当于一个抽象类,但是它不能包含任何实现方法。
2、接口的每种方法都必须在派生类中实现。
3、接口有时候可以看成是类的模具,它指明一个类该提供哪些内容。
4、接口主体只限于方法、索引器、属性的声明。
5、接口中不能包含字段、构造函数和常量等。
6、接口成员是隐式公开的,如果对其显式指定访问级别,就会出现编译器错误。
7、在接口中不能实现任何方法,属性或者索引器。
8、在指定方法时,只需给出返回类型、名称和参数列表,然后以分号结束。
9、实现接口的语法与实现继承一样,都用冒号“:”

 class Program
    {
        static void Main(string[] args)
        {
            XiaoHong xiaoHong = new XiaoHong();
            XiaoMing xiaoMing = new XiaoMing();
            xiaoHong.YouDian();
            xiaoMing.YouDian();
            Console.ReadKey();
        }
    }

    interface IPerson
    {
        void YouDian();
    }
    class XiaoHong : IPerson
    {
        public void YouDian()
        {
            Console.WriteLine("我会跳舞");
        }
    }
    class XiaoMing : IPerson
    {
        public void YouDian()
        {
            Console.WriteLine("我学习好");
        }
    }

三,抽象类
什么是抽象类:不能被实例化的类称为抽象类,抽象类是派生类的基类。
关键字:abstract

1、一个抽象类可以同时包含抽象方法和非抽象方法。
2、抽象方法只在派生类中真正实现,这表明抽象方法只存放函数原型,不涉及主体代码,
3、派生自抽象类的类需要实现其基类的抽象方法,才能实例化对象。
4、使用override关键子可在派生类中实现抽象方法,经override声明重写的方法称为重写基类方法,其签名必须与override方法的签名相同。

 class Program
    {
        static void Main(string[] args)
        {
            XiaoHong xiaoHong = new XiaoHong();
            XiaoMing xiaoMing = new XiaoMing();
            xiaoHong.YouDian();
            xiaoMing.YouDian();
            Console.ReadKey();
        }
    }

    abstract class IPerson
    {
      public  abstract void YouDian();
    }
    class XiaoHong : IPerson
    {
        public override void YouDian()
        {
            Console.WriteLine("我会跳舞");
        }
    }
    class XiaoMing : IPerson
    {
        public override void YouDian()
        {
            Console.WriteLine("我学习好");
        }
    }

四,结构

 

结构是使用关键字struct定义的,是值类型数据结构。它用来表示一个记录。如果你想要知道你自己的总成绩,那么你就要知道你每门的成绩,就可以以下面的形式来定义Score结构。

复制代码
 //结构
struct Score
{
    //结构不能初始化值
    public int score_Id;
    public string course;
    public float grade;        
}
原文地址:https://www.cnblogs.com/gbb44/p/10639084.html