1
2
3
4
5
6
7

抽象类

发布时间:2018-12-15 11:52   发布人:焦卫峰   浏览次数:540

1.抽象类

抽象类是特殊的类,它不能被实例化,只能作为其它类的基类而存在,其目的是抽象出子类的公共部分以减少代码重复。

抽象方法是一种特殊的虚方法,它只能定义在抽象类中,抽象方法没有任何执行代码,需要在派生类中用重写的方式具体实现(除非派生类依旧是抽象类)。

除了抽象方法外,我们还可以在抽象类中定义抽象属性。抽象属性也没有具体实现代码,必须在派生类中重写。

    abstract class A{

        public abstract void P();

}

一个抽象类的子类还是抽象类,除非子类实现了父类中所有的抽象方法。

    class B:A{

        public  override void P(){

        }

}

 

总结:

抽象类不能产生对象

抽象方法没有方法体

抽象类中不一定包含抽象方法

含有抽象方法的类一定是抽象类

一个抽象类的子类仍旧是抽象类,除非它实现了父类中所有的抽象方法

2.密封类

密封类(Sealed class)是一种不能被继承的类,用 sealed 关键字声明。

同样,如果想防止一个方法被派生类重写,可以用 sealed 关键字把它为声明密封方法。