为什么普通类继承抽象类需要实现所有的抽象方法,想知道是什么逻辑
在抽象类中,可以定义抽象属性,抽象方法。
抽象方法只定义了方法签名(返回类型,方法名称,参数),而没有具体实现的方法体。在继承类中,必须实现抽象类中的抽象成员,这是C#语法约定。
逻辑就是:如果在继承类中不实现抽象成员,那么客户端在调用具体实现类实例的方法或者属性时就不可用,因为客户端不知道抽象成员到底实现了没有。所以,必须在继承类时就强制要求实现抽象成员。
简单来说就是:确保实现类实现了抽象成员。
1.普通类里不可以有抽象方法,每个方法都必须有方法体能够调用
2.抽象类里可以有抽象方法,也可以有普通方法
3.当一个普通类继承了抽象类,那么也就继承了所有的抽象方法,如果不实现这些方法,那么这些方法就只有声明而没有定义,编译不通过
4.这个机制可以保证有些函数需要子类实现的时候你不会忘记实现
抽象 就是无实际存在, 若不在继承类中实现,那就什么都没有了
谁说一定要实现,空方法体不也可以吗?