本篇文章,写给对抽象类和接口有所了解,但是又对使用情况比较混乱的孩子
如果你能脱口而出以下三个问题,说明你的水平很扎实,不用看了
1、接口可以被接口继承吗?
2、抽象类可以实现接口吗?
3、抽象类和接口的区别?

前两个的答案,都是yes
本篇文章理论较少,都是使用探索,代码不标红就是可以使用,标红就是报错

接口

继承接口,没有问题

继承类,报错(抽象类一样)

多重继承接口,没有问题

实现接口,报错

接口的static方法必须有body

小结:接口可以extend甚至多extend接口,但是不能extend类和implent接口

解释:接口本身没有方法体,所以不管怎么继承接口,都是空的,没有问题,但是implement需要具体的方法体,所以不能使用

抽象类

抽象类可以没有抽象方法

不含抽象方法的抽象类可以实例化

含有抽象方法的抽象类需要重写所有抽象方法去掉abstract关键字才能实例化

抽象类的子类必须重写抽象方法,如果子类是抽象类,就不用重写

抽象类可以像普通类一样,extend抽象类,implement接口,以及调用main函数

小结:抽象类可以没有抽象方法,也可以实例化和继承类和实现接口,但是如果抽象类中有抽象方法,无论是实例化还是继承,都必须将其重写为普通方法