==============总结==============
1、接口可以继承接口,注意不是实现implements
interface1 extends interface2
接口不可以继承具体类或者抽象类
ERROR:interface extends class
2、抽象类可以继承抽象类,可以实现接口
abstractClass1 extends abstractClass2 implements interface
abstractClass1实现了接口interface,因为自己是抽象类,所以不用覆写接口的方法
3、抽象类可以继承具体类,但是必须保证具体类中默认的构造函数可见
abstractClass extends class
class 的默认构造函数必须是public
以下的代码中注释部分有ERROR表示编译错误。
public class AClass {
}
public interface BInterface {
public void doSomething();
}
// 接口可以继承接口,注意不是实现implements
public interface CInterface extends BInterface {
}
// ERROR!接口不可以继承具体类或者抽象类,接口的父接口必须是接口
public interface DInterface extends AClass {
}
public abstract class EClass {
}
// 抽象类可以继承抽象类,可以实现接口
public abstract class FClass extends EClass implements BInterface{
}
public class GClass {
private GClass() {
}
}
// ERROR!抽象类可以继承具体类,但是必须保证具体类中默认的构造函数可见
public abstract class HClass extends GClass {
}
public class IClass {
public IClass(String notice) {
}
}
// ERROR!抽象类可以继承具体类,但是必须保证具体类中默认的构造函数可见
public class JClass extends IClass {
}