聊一聊为什么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设计师眼中的程序员:
并不是每个程序员都是变形金刚,这就跟我们使用应用一样越傻瓜式越好。
但是在这里还是希望每个程序员都能够成长为变形金刚,共勉!!!