一:抽象
——包含抽象函数的类,类也必须定义为抽象的
——抽象函数只有定义没有函数体,并且必须定义为public
——抽象类中可以包含普通函数和抽象函数
——抽象类不能实例化,不能使用抽象类去构造对象,但是可以使用抽象类去声明对象
1.父类声明的对象可以用子类去构造,例如Main方法中的第二句,因为Boss类中一定包含Enemy类中的全部数据,反过子类声明的对象用父类去构造是不允许的
2.一个对象是什么类型的主要是看它是通过什么区构造的,例如Main方法中的第一句说明enemy1是Enemy类型的,第二句说明enemy2是Boss类型的
抽象函数与虚函数比较:
1.抽象函数与虚函数类似都是虚拟的
2.当继承了一个抽象类时,必须去实现抽象函数
但是虚函数可以重写也可以不重写
3.抽象函数只能在子类中去实现
二:接口
——接口中不能包含字段
——接口中的函数只有定义没有函数体也就是不能实现,不需要有修饰符,默认都为public
——接口不能实例化,不能使用接口去构造对象
接口:
1.接口与抽象一样,接口类与抽象类中只能定义函数,不能实现函数
2.接口与抽象一样,接口类与抽象类中定义的函数必须在派生类中实现
3.接口与抽象一样,不能实例化
4.一个子类可以继承多个接口,但是只能继承一个类
三:密封
——密封类不能被继承
——密封类中不能声明虚拟成员
——可以将重写方法声明为密封方法,表示该方法不能被重写