一、继承类
访问修饰符 class ClassA:ClassB
使用:完成类继承
子类调用父类:base.父类成员
重写父类方法:override
public override int Area (int x,int y)
在子类中重写父类中的方法后能改变方法体中的内容,但是方法的定义不能改变定义为继承类可重写:virtual
通常将类中的成员定义成虚拟的,表示这些成员将会在你继承后重写其中的内容声明抽象类或抽象方法:abstract
通常抽象类会被其它类继承,并重写其中的抽象方法或者虚方法
密封类:sealed 密封类不能被继承,密封方法不能被重写
子类调用父类无参构造器:直接在构造器后面使用“:base(参数)”的形式即可
二、接口
interface 接口名称
使用:完成接口
名称:通常是以1开头
- 接口中的成员不允许使用private、protected、internal访问修饰符(因为接口是需要外面接口去实现方法体,所以其修饰符必定是public,C#默认为public)
- 接口中的成员不允许使用new、static、virtual、abstract、sealed修饰符(当一个接口集成另一个接口时,可用new关键字隐藏父接口中的方法)
- 在接口中不能定义字段
- 在接口中定义的方法不能包含方法体
规定不能直接创建接口的实例,只能通过类实现接口中的方法
三、接口和继承的区别
- 继承实现“是不是”,接口则为“有没有”
- 继承自“抽象类”,只能继承单个,而接口则可以为多个
四、静态和非静态区别
非静态类中,可以有实例成员(非静态成员),也可以有静态成员
- 调用实例成员 对象名.实例成员
- 调用静态成员 类名.静态成员
静态函数中,只能访问静态成员,不允许访问实例成员
实例函数中,既可以使用静态成员,也可以使用实例成员
静态类中只允许有静态成员,不允许出现实例成员
使用:
- 将类当做“工具类”,使用时考虑将其写成工具类
- 静态类在整个项目中资源共享
五、构造函数
作用:帮助我们初始化对象(给对象的每个属性依次的赋值)
构造函数是一个特殊的方法
- 构造函数没有返回值,void也不能写
- 构造函数的名称必须与类名相同
- 访问修饰符必须是public
- 创造对象的时候会执行构造函数
六、new关键字
- 在内存中开辟一片空间
- 在开辟的空间中创建对象
- 调用对象的构造函数进行初始化对象
七、this关键字
- 代表当前类的对象
- 在类当中显示的调用本类的构造函数:this