聊一聊为什么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只允许单继承相关推荐

  1. java只允许单一继承_问题:Java语言只允许单继承,指每个类只能有一个 ( )

    问题:Java语言只允许单继承,指每个类只能有一个 ( ) 更多相关问题 用List命令显示表文件中的当前记录的命令格式是________. WHERE子句的条件表达式中,可以匹配0个到多个字符的通配 ...

  2. 简明阐述Java到底是单继承还是多继承?

    一.先上结论: 这个问题要分为类和接口两种情况来谈. 即Java中支持的是类的单继承以及接口的多继承(不过其实我们通常对于接口会说实现,而不是继承).所以也会有'Java中支持的是类的单继承以及接口的 ...

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

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

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

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

  5. Java三兄弟之继承

    Java的三大特征:封装.继承.多态 继承 继承的概念 就像我们实际生活中的继承,孩子继承了爸爸的才华,继承了妈妈的样貌.我们Java中也同样有继承的关系,子类继承父类的一些成员变量和方法. 多个类中 ...

  6. java--类单继承多实现,接口多继承

    继承的表现形式: 单继承:一个类只能继承一个类 多继承:一个接口可以继承多个类,一个类可以实现(implements)多个接口. 类为什么只能单继承 1.java只支持单继承,如果子类继承的多个父类里 ...

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

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

  8. JAVA只要掌握内部类,多继承和单继承都不是问题

    本文分享自华为云社区<[JAVA冷知识]JAVA居然支持多继承?让我们用内部类去吧!>,作者:山河已无恙 . 众多周知,对于面向对象语言来讲,JAVA是不支持多继承的,只支持单继承,但是提 ...

  9. java关于多继承和单继承

    面试官说:java怎么实现多继承? 答:java不允许,不允许,不允许多继承. 面试官:我就是要实现多继承? 答:好吧,行. 首先要区分一下三个概念: 单继承 多级继承 多继承 1.单继承 java两 ...

  10. java如何实现多继承

    在java中,原则上是不允许多继承的,也就是类与类之间只可以单继承. 那么,有没有办法,可以在不使用接口的情况下实现多继承呢?  答案是可以. 使用内部类就可以多继承,严格来说,还不是实现多继承,但是 ...

最新文章

  1. 《数据科学家养成手册》--“什么性质的人才能称得上科学家?” “科学的意思”
  2. 如何去除使用inline-block之后的间距(二)?
  3. 关于bds2006里面的indy 问题!!!!!!
  4. EditText获得焦点后,如何关闭软键盘
  5. Linux配置环境变量source时报错:export `=‘ not a valid identifier的一般原因
  6. Silver Cow Party POJ - 3268 (固定起点和固定终点的最短路)
  7. 51822模拟ble广播-理论
  8. Babel+vscode实现APICloud开发中兼容ES6及以上代码
  9. Alexa与小娜结盟,智能语音助手该呼朋引伴还是独自前行?
  10. jquery和easui学习总结_jQuery EasyUI总结
  11. 深入java虚拟机(二) 对象的创建
  12. c 如何加函数锁linux,Linux下C语言中fcntl函数用法说明
  13. cnzz.php,php,curl_PHP curl抓取cnzz统计数据,php,curl,cnzz - phpStudy
  14. 设置二级域名解析到同IP不同端口
  15. 【防火墙_动态路由-OSPF】
  16. 天空盒六面图片+左右眼3D全景图片
  17. 【转】我和权威的故事
  18. python 利用cip.cc查询IP归属地
  19. 点击文本框弹出热门标签
  20. android穿山甲广告位id,Android自渲染Draw广告

热门文章

  1. java前端开发简历_web前端工程师简历
  2. adb获取剪贴板内容_Android复制粘贴剪切板内容的一种方法
  3. Unity 复制内容到剪贴板
  4. [3DMax]物体在场景内居中和物体内坐标居中
  5. 【译学】数据分析手册学习09:举例说明 - 定量定性数据分析的程序和方法 Procedures and Methods
  6. python语言后缀_在Python语言中,可以作为源文件后缀名的是
  7. 大数据——舆情监控系统
  8. 输出实数的格式,包括:⑴一行输出一个实数;⑵一行内输出两个实数;⑶一行内输出三个实数。实数用“6.2f“格式输出2020.11.12
  9. mysql不停库全量备份,mysql全量备份数据
  10. windows10如何设置电脑的固定IP地址