抽象类跟接口区别 个人理解总结版 字不多慢慢体会
1.抽象类
跟普通类没啥区别,只是多了抽象方法。不能new。
属于顶层设计,定义出共有的属性和方法。含有抽象方法一定是抽象类
2.接口
更严格,不能new,定义的变量都是常量 public static final,默认的可忽略
只能有抽象方法,默认就是public abstract 可以忽略。
不能有构造方法
jdk1.8之后,放宽条件、
可以 defalut关键字声明普通方法、静态方法
使用场景:
抽象类,一般用于含有共有属性及功能的抽取,如人。java是单继承,继承后可以有男人女人
接口,可以多实现、继承,解耦,多态。 动物>>狗和猫,而狗和猫的差别很大,属于多态。
父接口引用,指向一个具体的实现类,体现多态,如参数是接口,但是传入的类型可以是不同的实现类。
同理。父类指向一个子类的引用,可以调用父类方法,要想调用子类方法,需要向下转型。