抽象类和接口的总结

区别1:抽象类体现继承关系,一个类只能単继承。接口体现实现关系,一个类可以多实现。

区别2:抽象类中可以定义非抽象方法和抽象方法,子类继承后可以直接使用非抽象方法。接口的方法都            是抽象的,必须由子类去实现。接口中的成员都有固定的修饰符。

区别3:抽象类有构造方法,用于给子类对象初始化。而接口没有构造方法。

相同点1: 都不能被实例化

相同点2: 子类或者实现类都必须实现接口或者抽象类中的所有方法

特点1:抽象类不可以实例化,即不能用new创建对象。抽象类必须由其子类覆盖了所有的抽象方法后,           该子类才可以实例化,否则,这个子类也是抽象类。

特点2:抽象类abstract关键字不能和哪些关键字共存:

  • final 因为final修饰的方法不能被继承。
  • static因为类.方法(),此方法没有方法体,没有意义。
  • private 因为抽象方法是要被子类覆盖的,加上private子类就不知道这个方法了。

特点3:接口中声明变量必须是 而且默认是 public static final的,接口中定义的方法都是 而且默认是abstract、    public的。接口里的数据成员必须初始化,且全是常量,不是变量。  

特点4:接口是抽象类的 变体( 你没看错 ), 里面所有的方法都是抽象的 所以是public abstract 接口也可以通过关键字extends来继承其他接口。格式如下所示:

            class 类名称 implements 接口A,接口B{   //接口的实现}

            interface 子接口名称 extends 父接口1,父接口2,...{}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值