java关于多继承和单继承
面试官说:java怎么实现多继承?
答:java不允许,不允许,不允许多继承。
面试官:我就是要实现多继承?
答:好吧,行。
首先要区分一下三个概念:
单继承
多级继承
多继承
1.单继承
java两个类之间可以有继承关系。
在多个类的情况下,一个类作为子类,它的的父类只有一个;同时,一个类作为父类,它的子类有很多个。
2.多级继承
发生在java3个及3个以上的类之间。
a类继承b类,b类继承c类,…
这样成一条长链,a类就可以实现多级继承,可以继承b类、c类、…
3.多继承
多继承在java概念上不允许,但是为了弥补不足,java也有了接口概念,弥补java不能实现多继承的缺陷。
多继承实现的方法有三种:多级继承,实现接口,内部类。
这里不多介绍多级继承和实现一个或多个接口。
内部类的介绍地址:
内部类介绍:常用类(一)内部类下面就参考网页的举个例子,已搬到下面:
@rocling的原创博客: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)这两个方法的功能呢。
- 优点:包装了内部类,实现了多继承。
- 不足:此类为内部类的包装,一般在公司不太适用,不能满足大多数开发需求,毕竟创建的一个类里有多个类。
java关于多继承和单继承相关推荐
- JAVA只要掌握内部类,多继承和单继承都不是问题
本文分享自华为云社区<[JAVA冷知识]JAVA居然支持多继承?让我们用内部类去吧!>,作者:山河已无恙 . 众多周知,对于面向对象语言来讲,JAVA是不支持多继承的,只支持单继承,但是提 ...
- php 魔术方法 多继承,day23:单继承多继承菱形继承__init__魔术方法
原文:https://www.cnblogs.com/libolun/p/13434675.html 单继承 关于继承的一些基本概念 1.什么是子类?什么是父类?如果一个类继承另外一个类,该类叫做子类 ...
- Python OOP:继承、单继承、多继承、__mro__、子类重写父类同名属性和方法、子类调用父类同名属性和方法、多层继承、super()、私有(实例)属性和方法、获取修改私有属性值、私有类属性
一.继承 Python⾯向对象的继承指的是多个类之间的所属关系,即⼦类默认继承⽗类的所有属性和⽅法. 继承作用:继承可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展. 在P ...
- java三大特性:封装、继承、多态
2019独角兽企业重金招聘Python工程师标准>>> 至今记得若干年前,去面试排了半天的队,到我的时候,面试官问我的第一个问题,java三大特性是什么~我支支吾吾的没有答全~0.0 ...
- 【Java】 5.6 类的继承
目录 Java的继承:实现代码复用的手段之一 方法重写(Override,也叫覆盖):两同.两小.一大 super限定 调用父类构造器 Java的继承:实现代码复用的手段之一 一个类与另一个人类的关系 ...
- java面向对象(二)之继承
继承 介绍 继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力.继承即常说的is-a关系.子类继承父类的特征和行为,使得子类具有父类的各种属性和方法.或子类从父类继承 ...
- java父类转子类_java中什么是继承,和继承的接口的关系?
继承的概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类. 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父 ...
- java的继承实例_java继承(实例讲解一)
Java继承(Java inheritance) Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类.这种技术使 ...
- 【JAVA SE】第七章 继承和多态
第七章 继承和多态 文章目录 第七章 继承和多态 一.继承 1.概念 2.继承的特性 2.继承关键字 3.构造器 4.子类重写父类方法的规则 二.多态 1.概念 2.多态的优点 3.多态存在的三个必要 ...
最新文章
- python获取excel某一列-Python从Excel中读取日期一列的方法
- python queue get 方法_Python Queue模块详解
- boost::geometry模块自定义多边形示例
- Dynamo:亚马逊的高可用键值存储
- 使用ActionScript实现滤镜效果
- Python中68个内置函数的总结
- 标准C程序设计七---72
- 自定义----损失函数与优化器
- python3+Neo4j+flask,汽车行业知识图谱项目实战
- RouterOS安装以及搭建DHCP PPPoE PPTP L2TP服务
- 使用jQuery来创建平滑的页面滚动
- Docker与容器化-04-Docker私有仓库与镜像迁移备份
- 安防的未来五年 如何把握机遇深耕市场?
- Weka下载安装详解
- Js封装组件 + Slots插槽
- 电脑软件测试英雄联盟,怎么测试电脑能不能玩英雄联盟
- windows linux 共存,Windows与Linux共存
- FreeIPA FreeRadius FreeOTP 实现双因素认证登录
- Android 实现拍照功能,并将图片保存到本地存储
- Windows10下QT6(C++)+OpenCV4环境配置及安装