1.抽象类是一个类,可以包含一切类可以包含的类型成员。
2.抽象方法必须包含在抽象类里面,也就是一个类中有抽象方法,那这个类一定是抽象类。
3.继承抽象类,必须显示的实现override其抽象成员(方法)。
4.抽象类可以包含普通成员,但是抽象成员只能放到抽象类里。
5.抽象类不能直接实例话,声明的对象只能使用抽象类里的方法,不能使用子类新增的方法。
6.接口可以包含属性(本质是方法)、方法、时间,不能包含字段、委托,不能使用访问修饰符,只能是public。
7.接口不能包含默认实现,实现接口必须实现所有方法。
8.选择接口的原因:可以实现多个接口
7.强制要求某些子类需要实现某方法但是又不能放到抽象类中作为大家都实现的方法时,可以通过要求该子类实现某个接口的方式。
抽象类 is a的意思。比如小米是个手机,描述是什么的时候用抽象类。
接口是 can do的意思。比如苹果手机可以apple pay,描述能干什么的时候用接口。
8.虚方法、抽象类abstract+实现类override 与 子类中用new覆盖父类方法(普通方法)的重大不同点就是new紧紧是一个覆盖的效果,没有多态的效果,其他两种方式有。
从编译的角度讲,普通方法是编译时决定的,虚方法是运行时决定的。
不建议使用隐藏父类方法的方式。