C#中的抽象、接口、密封

一:抽象

——包含抽象函数的类,类也必须定义为抽象的


——抽象函数只有定义没有函数体,并且必须定义为public


——抽象类中可以包含普通函数和抽象函数

——抽象类不能实例化,不能使用抽象类去构造对象,但是可以使用抽象类去声明对象

1.父类声明的对象可以用子类去构造,例如Main方法中的第二句,因为Boss类中一定包含Enemy类中的全部数据,反过子类声明的对象用父类去构造是不允许的
2.一个对象是什么类型的主要是看它是通过什么区构造的,例如Main方法中的第一句说明enemy1是Enemy类型的,第二句说明enemy2是Boss类型的

抽象函数与虚函数比较:
1.抽象函数与虚函数类似都是虚拟的
2.当继承了一个抽象类时,必须去实现抽象函数
但是虚函数可以重写也可以不重写
3.抽象函数只能在子类中去实现


二:接口

——接口中不能包含字段


——接口中的函数只有定义没有函数体也就是不能实现,不需要有修饰符,默认都为public


——接口不能实例化,不能使用接口去构造对象

接口:
1.接口与抽象一样,接口类与抽象类中只能定义函数,不能实现函数
2.接口与抽象一样,接口类与抽象类中定义的函数必须在派生类中实现
3.接口与抽象一样,不能实例化
4.一个子类可以继承多个接口,但是只能继承一个类


三:密封

——密封类不能被继承


——密封类中不能声明虚拟成员


——可以将重写方法声明为密封方法,表示该方法不能被重写

发布了127 篇原创文章 · 获赞 278 · 访问量 24万+

猜你喜欢

转载自blog.csdn.net/LLLLL__/article/details/100533722