总结java的接口、抽象类、具体类之间的继承和实现关系

==============总结==============

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 {
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值