抽象类与接口

抽象类,抽象方法,接口的总结

抽象方法 抽象类 接口
抽象方法没有方法体,交给子类实现 抽象类不一定有静态方法,有静态方法的一定是抽象类。 JDK1.8之前:接口里只能写方法的声明,而不能写方法的具体实现
JDK1.8之后:接口可以对方法的声明写具体实现。
抽象方法修饰符
不能是private,final,static(因为需要子类实现)。
不能被实例化,只能被继承。 接口中没有构造方法,不能被实例化。
抽象方法必须定义在抽象类或接口中。 抽象类的子类可以不实现所有的抽象方法,但也必须作为抽象类。(抽象派生类) 接口只能继承接口,不能继承类,接口支持多继承。
抽象类的构造器不能定义为私有。(子类构造方法会调用父类构造方法。) 接口中定义的成员变量默认是public static final修饰的静态常量
抽象类不能定义为final,final (修饰的类不能被继承)。 接口中的方法:
默认是public abstract 修饰的抽象方法。
JDK1.8前不能有静态方法,不能有普通方法。
JDK1.8后可以有静态方法,可以有普通方法。
抽象类可以实现接口,可以继承具体类,也可以继承抽象类。 接口中定义的内部类,默认是public static 修饰的静态内部类。
抽象类中有普通方法,也可以有静态方法。

抽象类和接口的异同:

相同点不同点
① 抽象类和接口都不能被实例化① 抽象类有构造方法,接口没有构造方法
② 抽象类和接口都可以定义抽象方法,子类/实现类必须覆写这些抽象方法② 抽象类可以包含普通方法,接口中只能是public abstract修饰抽象方法(Java8之后可以)
③ 抽象类只能单继承,接口可以多继承
④ 抽象类可以定义各种类型的成员变量,接口中只能是public static final修饰的静态常量
⑤抽象类中的抽象方法的访问类型可以是public,protected和(默认类型,虽然 eclipse下不报错,但应该也不行),但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。
⑥抽象类中可以包含静态方法,接口中不能包含静态方法。

感谢某位不知名博主的总结,在本博客中借鉴了很多对方的总结知识点:传送门

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值