如果一个类实现接口,那么它要实现这个接口所有的方法吗?如果这个类继承抽象类呢?

博客介绍了Java中类实现接口和继承抽象类时,对抽象方法的实现原则。普通类需实现所有抽象方法,抽象类则不必。还说明了接口属性和方法的修饰符,以及抽象类的特点,如不一定含抽象方法、不能实例化等,强调了其多态作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 一个类实现接口和继承抽象类对于抽象方法的实现原则是相同的:

   (1)如果这个类是个普通类,那么必须实现这个接口/抽象类的所有抽象方法;

   (2)如果这个类是个抽象类,那么不必实现这个接口/抽象类的抽象方法,因为抽象类中可以定义抽象方法

 

  • 接口中定义的属性必须是public static final的,方法为public abstract的,这些修饰父都可以省略掉
  • 抽象类中不一定包含抽象方法,包含抽象方法的类一定要声明为抽象类。

 

抽象类专用于派生出子类,子类必须实现抽象类所声明的抽象方法,否则,子类仍是抽象类。 包含抽象方法的类一定是抽象类,但抽象类中的方法不一定是抽象方法。 抽象类中可以没有抽象方法,但有抽象方法的一定是抽象类。所以,java中 抽象类里面可以没有抽象方法。比如HttpServlet类。抽象类和普通类的区别就在于,抽象类不能被实例化,就是不能被new出来,即使抽象类里面没有抽象方法。 抽象类的作用在于子类对其的继承和实现,也就是多态;而没有抽象方法的抽象类的存在价值在于:实例化了没有意义,因为类已经定义好了,不能改变其中的方法体,但是实例化出来的对象却满足不了要求,只有继承并重写了他的子类才能满足要求。所以才把它定义为没有抽象方法的抽象类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值