在java中,原则上是不允许多继承的,也就是类与类之间只可以单继承。
那么,有没有办法,可以在不使用接口的情况下实现多继承呢?  答案是可以。
使用内部类就可以多继承,严格来说,还不是实现多继承,但是这种方法可以实现多继承所需的功能,所以把它称为实现了多继承。
下面就举个例子:
假如有一个打电话类Call,里面实现了一个可以打电话的功能的方法callSomebody(String phoneNum);
一个发信息类SendMessage,里面实现了一个可以发信息功能的方法sendToSomebody(String phoneNum);
还有一个手机类Phone,这个手机类想实现打电话和发信息的功能;我们知道可以用继承来获得父类的方法,但是只可以单继承呀,也就是说只可以实现其中一个类里面的方法,这并不满足我们的需求。

接下来,我们就使用内部类,达到我们所需的目标了。

class Call {
public void callSomebody(String phoneNum){
System.out.println("我在打电话喔,呼叫的号码是:" + phoneNum);
}
}
class SendMessage {
public void sendToSomebody(String phoneNum){
System.out.println("我在发短信喔,发送给 :" + phoneNum);
}
}
public class Phone {
private class MyCall extends Call{

}
private class MySendMessage extends SendMessage{

}

private MyCall call = new MyCall();
private MySendMessage send = new MySendMessage();

public void phoneCall(String phoneNum){
call.callSomebody(phoneNum);
}

public void phoneSend(String phoneNum){
send.sendToSomebody(phoneNum);
}

public static void main(String[] args) {
Phone phone = new Phone();
phone.phoneCall("110");
phone.phoneSend("119");
}
}
这样就实现了callSomebody(String phoneNum) 和sendToSomebody(String phoneNum)这两个方法的功能呢。
————————————————
版权声明:本文为CSDN博主「rocling」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/rocling/article/details/82350515

转载于:https://www.cnblogs.com/gzhbk/p/11512559.html

java如何实现多继承相关推荐

  1. JAVA常用基础知识点[继承,抽象,接口,静态,枚举,反射,泛型,多线程...]

    类的继承 Java只支持单继承,不允许多重继承 - 一个子类只能有一个父类 - 一个父类可以派生出多个子类 这里写图片描述 子类继承了父类,就继承了父类的方法和属性. 在子类中,可以使用父类中定义的方 ...

  2. Java基础小常识-继承-(10)

    一.继承的好处 1.好处: 1)提高了代码的复用性 2)让类与类之间产生了关系,给第三个特征多态提供了前提 2.Java中支持单继承,不直接支持多继承,但对c++中的多继承机制进行了改良. 3.单继承 ...

  3. java 接口 实现和继承关系

    一.抽象类 有时候,我们可能想要构造一个很抽象的父类对象,它可能仅仅代表一个分类或抽象概念,它的实例没有任何意义,因此不希望它能被实例化.例如:有一个父类"水果(Fruit)",它 ...

  4. 【JavaSE_08】Java中static、继承、重写

    #一.Static 学习静态这个关键字,关键是抓住两个点: 1,关注其语法特点 2,关注其使用场景 案例讲解: 我们先从静态变量开始,当一个成员变量加上static修饰之后,会是一个什么效果? 比如创 ...

  5. 详细分析如何在java代码中使用继承和组合

    文章目录 继承与组合 何时在Java中使用继承 何时在Java中使用组合 继承与组成:两个例子 用Java继承重写方法 Java不具有多重继承 使用super访问父类方法 构造函数与继承一起使用 类型 ...

  6. 《Java程序设计》实验报告——Java的接口与继承

    浙江理工大学 <Java程序设计>  实验报告  20 19-20 20学年第 1学期      学  院 信息学院 班  级 计算机科学与技术18(3) 姓  名 申屠志刚 学  号 2 ...

  7. Java的接口、继承与多态

    接口 java只支持单继承,即一个类只能有一个父类,因此需要接口来实现多重继承. 接口的定义 类和接口的区别:一个类通过继承接口的方式,从而来继承接口的抽象方法.类描述对象的属性和方法,接口则包含类要 ...

  8. Java提高篇 —— Java三大特性之继承

    一.前言 在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事 ...

  9. java 接口可以多继承

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 接口是常量值和方法定义的集合.接口是一种特殊的抽象类. java类是单继承的.classB Exte ...

  10. java接口中多继承的问题

    java中支撑多继承吗? 支持->接口啊 为什么接口支持多继承呢?因为接口中没有方法体!即使可能两个接口中有一样的抽象方法,但是 只会调用子类中覆盖该同样抽象方法的具体方法!不会引起调用的歧义! ...

最新文章

  1. 如何使用 Istio 进行多集群部署管理(一)
  2. 《大话》之 策略模式 Vs 状态模式
  3. web前端技术分享Electron之Renderer Process API
  4. 无为职业学校计算机班,致盐亭职中2000级计算机三班全体同学的一封信
  5. python决策树id3算法_python实现决策树ID3算法
  6. Vue 安装 live-server
  7. 女生学计算机好还是工业工程好,工业工程专业排名-工业工程考证我是学IE大三的,我想问一下,工业工程,有哪些与专业 爱问知识人...
  8. 传高盛与德劭前合伙人组5亿美元私募基金
  9. 抓取Crash不让崩溃
  10. [HDU1003]最长子序列和
  11. [再学Python] - 3 - 异常处理 try…except…
  12. ubuntu 10.04下vmware tools安装和一些应用
  13. mysql 几个超时参数(timeout)解释
  14. 刘意JavaSE 学习笔记 Day12-Day14——字符串API(String/StringBuffer/StringBuilder...)
  15. 讯联智付:用户绑卡时“被签订”代扣协议 成借贷平台乱收费“帮凶”
  16. 国内游戏产业现状十一谈
  17. 米思齐(Mixly)图形化系列教程(四)-运算符
  18. RHEL8破解root密码
  19. MySQL数据库W版与L版转换_mysql博文总结
  20. flutter如何让行Row的两个子控件分别左对齐和右对齐?

热门文章

  1. SAP ABAP ALV list background render
  2. nodejs 从TCP套接字读取并解析数据
  3. 使用Recast.AI创建具有人工智能的聊天机器人
  4. miui12怎么自定义开机动画_MIUI12正式官宣,5天后发布!网友:发布是发布,12月才能更新?...
  5. 如何开启linux的dhcp服务器,怎么开启DHCP服务器啊
  6. 跳跃游戏Python解法
  7. c语言有一个已经排好的数组,C语言有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中...
  8. php排序算法有哪些,PHP常见的几种排序算法
  9. linux卸载anaconda_Win10安装Anaconda和Pytorch(CPU版)
  10. javascript 不让成为nan_这10个JavaScript面试题,看看你会几个?