CSharp之抽象类(abstract)

抽象类必须有限定词abstract

 

抽象类可以被继承的,因此抽象类不能被关键字sealed修饰,因为sealed修饰的类是不能被继承的。


抽象类不可以new对象,也即不能被实例化


抽象类中既可以包含抽象方法、属性,也可以包含非抽象方法、属性,有抽象方法、属性的类必定是抽象类


抽象类可以继承接口,在继承了接口的抽象类中,所有接口中定义的方法,必须包含方法体,可以不实现,而在此抽象类的派生类中实现


抽象类的派生类可以是抽象类,也可以是非抽象类


抽象类的抽象方法、属性必须是公有的(public)的,抽象类中的非抽象方法、属性可以是公有的,也可以是私有的,如果是私有的,则在派生子类中是不可见的,因此没有存在的意义


抽象类的派生子类既可以是抽象类也可以为非抽象类,如果派生子类是抽象类,则在派生子类中可以重载(override)所继承类的抽象方法、属性,也可以保留所继承类的抽象方法、属性;如果派生子类为非抽象类,则所继承类的方法、属性须完全重载(override)

 

抽象类可以实现多态

你可能感兴趣的:(C#概念)