抽象类、抽象方法、接口

一、抽象类和接口的区别
1、关键字
抽象类 abstract
接口 interface
2、实现
抽象类 单继承
接口 多实现
3、构造函数
抽象类可以有构造函数,但是不能被实例化,用来给子类初始化(无论其内部是否有抽象方法,都不能被实例化)
接口没有构造函数,不能被实例化
4、成员变量
抽象类可以有普通成员变量,成员变量权限public、protected、private、default都可以
接口中没有普通成员变量,只能有public static final 的静态常量(必须赋有初始值)
5、成员方法
(1)抽象类可以有抽象方法,也可以有非抽象方法。方法权限只有public、protected、default三种
接口方法权限默认为public,即public abstract
(2)在JDK1.8之前的版本(不包括JDK1.8),接口中不能有静态方法,抽象类中因为有普通方法,故也可以有静态方法。
在JDK1.8后(包括JDK1.8),在抽象类中依旧可以有静态方法,同时在接口中也可以定义静态方法了
(3)抽象类可以有静态代码块,接口不可以
(4)抽象类可以有普通方法
接口方法都是抽象的,不可有普通方法
二、抽象方法
1、特点
(1)使用abstract修饰,没有方法体,声明是public abstract void eat();
(2)抽象方法必须声明在抽象类中
(3)抽象类的子类必须重写抽象类中的所有抽象方法
(4)声明抽象方法时,不能用static和private修饰符

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值