什么时候使用抽象类,什么情况下使用接口,你真的懂了吗?

抽象类
抽象类的书写格式 public abstract class……
抽象类中的抽象方法 public abstract void test();
抽象方法必须存在于抽象类中,抽象类中可以有非抽象方法
抽象类中的抽象方法,不能使用private修饰,可以使用protected修饰,但是尽量使用public
抽象类不能直接实例化,也就是不能直接new对象,通过new子类对象的方式来创建对象。
抽象类中的抽象方法必须在子类中实现,除非子类是抽象类。
抽象类中的非抽象方法,可以根据需求是否重写,不强制。

接口
接口的修饰符 interface 书写格式 public interface 接口名称
jdk1.7
接口中只能有抽象方法 不管是否书写 都是 public abstract修饰
接口中只能定义静态常量 public static final 修饰的
接口不能直接被实例化 也就是不能直接new对象 还是用过new实现类的方式来创建对象
接口的实现类必须实现接口中的抽象方法 也就是所有方法
多态的表现形式 还是父类作为形参 或者 父类作为返回值
jdk1.8
接口中可以编写普通方法 必须加上 default关键字 来修饰方法 加在返回值以前
不管是否书写 都是 必须是 public修饰的
接口中可以编写静态方法 跟普通类中的静态方式 使用注意事项一样

适用场景:当你关注事物的本质的时候,使用抽象类,当你关注功能的时候,使用接口。(你品,你仔细品,我们说的事物的本质,比如一个动物,本质上就是一个动物,虽然模糊,但它肯定是一个动物,拥有动物拥有的本质,比如它能吃喝拉撒等,我们再来说功能,比如usb接口,比如插座等,这些无法归为一类具体的事物,我们称之为功能,也就是使用接口来描述。)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值