聊一聊为什么JAVA只允许单继承
聊一聊为什么JAVA只允许单继承
在开始啊我首先给大家解释一个误区。JAVA并不是不允许多继承,而是不允许”实现多继承“,也就是class是不允许多继承的,interface允许多继承。
为什么要这么设计呢?
从语言方面说,JAVA是一个面向对象编程语言,JAVA更是抽象解释为万事万物皆对象,人是对象,桌子是对象,大海也是对象。
public class Person extends Table,Sea{}
看上面的代码,如果说我们允许多继承,从代码方面来看当然没啥问题。 但是你会发现人既是人又是桌子又是大海,这显然是不合理的,很容易让开发人员产生误解。
所以JAVA在设计上就直接砍掉了多继承,让逻辑变得简单。所以我们可以这么写
public class Man extends Person{}public class Woman extends Person{}
我们可以说这个男人是人,这个女人是人。他们的根本属性没有变化。而且从”继承“这个名字来看,为啥叫”继承“,就是说明新的对象是被继承者的延续和扩展,从本质上也不改有变化。
Java设计者为我们javaer考虑了很多啊,你看旁边的C还需要自己去做内存释放,我们就不需要,你说气不气。
我在知乎上看到有人发了个对比图。
C++设计师眼中的程序员:
Java设计师眼中的程序员:
并不是每个程序员都是变形金刚,这就跟我们使用应用一样越傻瓜式越好。
但是在这里还是希望每个程序员都能够成长为变形金刚,共勉!!!
聊一聊为什么JAVA只允许单继承相关推荐
- java只允许单一继承_问题:Java语言只允许单继承,指每个类只能有一个 ( )
问题:Java语言只允许单继承,指每个类只能有一个 ( ) 更多相关问题 用List命令显示表文件中的当前记录的命令格式是________. WHERE子句的条件表达式中,可以匹配0个到多个字符的通配 ...
- 简明阐述Java到底是单继承还是多继承?
一.先上结论: 这个问题要分为类和接口两种情况来谈. 即Java中支持的是类的单继承以及接口的多继承(不过其实我们通常对于接口会说实现,而不是继承).所以也会有'Java中支持的是类的单继承以及接口的 ...
- JAVA常用基础知识点[继承,抽象,接口,静态,枚举,反射,泛型,多线程...]
类的继承 Java只支持单继承,不允许多重继承 - 一个子类只能有一个父类 - 一个父类可以派生出多个子类 这里写图片描述 子类继承了父类,就继承了父类的方法和属性. 在子类中,可以使用父类中定义的方 ...
- Java的接口、继承与多态
接口 java只支持单继承,即一个类只能有一个父类,因此需要接口来实现多重继承. 接口的定义 类和接口的区别:一个类通过继承接口的方式,从而来继承接口的抽象方法.类描述对象的属性和方法,接口则包含类要 ...
- Java三兄弟之继承
Java的三大特征:封装.继承.多态 继承 继承的概念 就像我们实际生活中的继承,孩子继承了爸爸的才华,继承了妈妈的样貌.我们Java中也同样有继承的关系,子类继承父类的一些成员变量和方法. 多个类中 ...
- java--类单继承多实现,接口多继承
继承的表现形式: 单继承:一个类只能继承一个类 多继承:一个接口可以继承多个类,一个类可以实现(implements)多个接口. 类为什么只能单继承 1.java只支持单继承,如果子类继承的多个父类里 ...
- JAVA常用基础知识点[继承,抽象,接口,静态,枚举,反射,泛型,多线程.]
类的继承 Java只支持单继承,不允许多重继承 - 一个子类只能有一个父类 - 一个父类可以派生出多个子类 子类继承了父类,就继承了父类的方法和属性. 在子类中,可以使用父类中定义的方法和 ...
- JAVA只要掌握内部类,多继承和单继承都不是问题
本文分享自华为云社区<[JAVA冷知识]JAVA居然支持多继承?让我们用内部类去吧!>,作者:山河已无恙 . 众多周知,对于面向对象语言来讲,JAVA是不支持多继承的,只支持单继承,但是提 ...
- java关于多继承和单继承
面试官说:java怎么实现多继承? 答:java不允许,不允许,不允许多继承. 面试官:我就是要实现多继承? 答:好吧,行. 首先要区分一下三个概念: 单继承 多级继承 多继承 1.单继承 java两 ...
- java如何实现多继承
在java中,原则上是不允许多继承的,也就是类与类之间只可以单继承. 那么,有没有办法,可以在不使用接口的情况下实现多继承呢? 答案是可以. 使用内部类就可以多继承,严格来说,还不是实现多继承,但是 ...
最新文章
- 《数据科学家养成手册》--“什么性质的人才能称得上科学家?” “科学的意思”
- 如何去除使用inline-block之后的间距(二)?
- 关于bds2006里面的indy 问题!!!!!!
- EditText获得焦点后,如何关闭软键盘
- Linux配置环境变量source时报错:export `=‘ not a valid identifier的一般原因
- Silver Cow Party POJ - 3268 (固定起点和固定终点的最短路)
- 51822模拟ble广播-理论
- Babel+vscode实现APICloud开发中兼容ES6及以上代码
- Alexa与小娜结盟,智能语音助手该呼朋引伴还是独自前行?
- jquery和easui学习总结_jQuery EasyUI总结
- 深入java虚拟机(二) 对象的创建
- c 如何加函数锁linux,Linux下C语言中fcntl函数用法说明
- cnzz.php,php,curl_PHP curl抓取cnzz统计数据,php,curl,cnzz - phpStudy
- 设置二级域名解析到同IP不同端口
- 【防火墙_动态路由-OSPF】
- 天空盒六面图片+左右眼3D全景图片
- 【转】我和权威的故事
- python 利用cip.cc查询IP归属地
- 点击文本框弹出热门标签
- android穿山甲广告位id,Android自渲染Draw广告
热门文章
- java前端开发简历_web前端工程师简历
- adb获取剪贴板内容_Android复制粘贴剪切板内容的一种方法
- Unity 复制内容到剪贴板
- [3DMax]物体在场景内居中和物体内坐标居中
- 【译学】数据分析手册学习09:举例说明 - 定量定性数据分析的程序和方法 Procedures and Methods
- python语言后缀_在Python语言中,可以作为源文件后缀名的是
- 大数据——舆情监控系统
- 输出实数的格式,包括:⑴一行输出一个实数;⑵一行内输出两个实数;⑶一行内输出三个实数。实数用“6.2f“格式输出2020.11.12
- mysql不停库全量备份,mysql全量备份数据
- windows10如何设置电脑的固定IP地址