Java中的抽象类与接口的关系和多重继承

本文探讨了Java中的多重继承现象,解释了在不同继承和实现组合下类调用方法的选择规则。同时,详细阐述了抽象类与接口的区别,包括方法实现、继承方式和数量限制等方面。此外,还强调了抽象类可以包含已实现的方法,而接口只能包含抽象方法。
摘要由CSDN通过智能技术生成

多重继承

在实际开发中,经常会遇到面向对象的一些问题,比如「多重继承」,还原案发现场,整个过程大概是这样:

接口 B 继承接口 A,接口 A 和接口 B 拥有相同的方法;C 是独立接口(方法和 A、B 一模一样);类 D 是独立的类,有和接口 A、B 相同的方法。

问题:
第一种情况:类 E 同时实现接口 A 和接口 B 时,会调用哪个接口的方法?

答:会调用A接口的方法。

第二种情况:类 E 继承 D,同时实现接口 A 和接口 B 时,会调用哪个方法?

答:会调用D类的方法

第三种情况:类 E 同时实现接口 A、接口 B 和接口 C 时,会调用哪个方法?

答:会调用A接口的方法

第四种情况:类 E 继承 D,且同时实现接口 A、接口 B 和接口 C 时,会调用哪个方法?

答:会调用D类的方法

抽象类和接口的区别

接口(interface): 接口在java中是一个抽象类型,是抽象方法的集合。一个类通过继承接口的方式,从而继承接口的抽象方法。从定义上看,接口是个集合,并不是类。类描述了属性和方法,而接口只包含方法。接口和抽象类一样不能被实例化,但是接口可以被实现(使用 implements 关键字)。实现某个接口的类必须在类中实现该接口的全部方法。接口内的方法都默认添加了abstract关键字。

**抽象类(abstract class):**使用abstract修饰符修饰的类。一个抽象类不能实例化,因为“没有包含足够多的信息来描述一个具体的对象”。但仍然拥有普通类一样的定义。依然可以在类的实体(直白点就是能在{}里面)定义成员变量,成员方法,构造方法等。

抽象类 (abstract class)接口 (interface) 的区别:

  1. 抽象类中可以有实现的方法,因为有抽象方法所以被叫做抽象类,而接口中只能存在抽象方法。
  2. 抽象类使用extend关键字来继承抽象类,接口用implement来实现接口。
  3. 抽象类只能继承一个,接口可以实现多个。
  4. 抽象类中可以存在构造器,接口中不能含有构造器。
  5. 抽象类中的方法可以被访问修饰符修饰,但是接口不可以接口默认被public修饰。

感谢您的阅读,如果本篇文章对您有帮助,欢迎点赞,关注,您的阅读是我莫大的鼓励!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值