C#实现多态之一抽象
1. 抽象类、抽象方法、抽象属性的特点
(1) 关键字:abstract
(2) 抽象类只能是其他类的基类
(3) 抽象成员必须存在于抽象类中,但抽象类可以没有抽象成员,也可以有非抽象成员
(4) 抽象方法中没有方法体(方法的声明只有以分号结束,而且签名后没有大括号),抽象属相没有访 问器,但是必须要声明,它告诉编译器必须重写该方法以提供他们自己的实现
(5) 抽象方法、属性必须在子类全部中重写(实现)
(6) 抽象方法、属相不能是静态的,因为静态的不可继承
2. 抽象类的实现
(1) 实现抽象成员关键字:override
(2) 虽然抽象类不能实例化,但是可以在父类的对象中存放它的子类成员的实例
Ps:里氏替换原则,基类可以被任何的子类替换掉
(3) 在判断子类的过程中使用is运算符来检查对象运行时的类型
- using System;
- namespace Demo1
- {
- public abstract class ParentClass
- {
- public ParentClass()
- {
- Console.WriteLine("父类构造函数");
- }
- public abstract void SayHello();
- }
- public class ChildClass : ParentClass
- {
- public ChildClass()
- {
- Console.WriteLine("子类构造函数");
- }
- public override void SayHello()
- {
- Console.WriteLine("我是子类");
- }
- public static void Main()
- {
- ChildClass child = new ChildClass();
- child.SayHello();//显示"我是子类"
- Console.ReadKey();
- }
- }
- }
版权声明:本文为博主原创文章,欢迎转载,转载请注明出处。