四大编程语言之父
1、PHP之父:勒多夫。
编程思想:技术其实只是解决问题的工具,是抽象的锤头、锯子,并没什么了不起,而真正振奋人心的是用技术提升了百万人的生活品质。
2、C语言之父:丹尼斯•里奇。
编程思想:教育知识面最好要宽一些,不要仅仅局限于编程。即使是编程,最好多学几种语言。
3、Java语言之父:詹姆斯。
编程思想:实际上Java应用很广泛,比如说人工智能游戏,在其他大的领域,Java更是应用广泛,例如在汽车,铁路机车上的即时控制系统,Java也广泛应用于军用方面。
4、python之父:Guido。
编程思想:让社区能够自我延续,这样我就可以最终退休或者至少可以度个长假。我希望未来这门语言会吸收其他语言或者其他领域的新理念。
1、PHP之父——勒多夫
勒多夫开发出的php语言,目前有一半的互联网在使用它。
2、C语言之父—丹尼斯•里奇
c语言是编程语言里最基础的语言。
3、Java语言之父—詹姆斯
目前,Java是世界上最成功最流行的编程语言之一。
4、python之父—Guido
也是目前较流行的编程语言。
java语言之父--詹姆斯·高斯林
linux之父--林纳斯·托瓦兹
python之父--Guido van Rossum
c语言之父--丹尼斯·里奇
c++之父--Bjarne Stroustup
c#之父--安德斯·海尔斯伯格
php之父--雷斯莫斯·勒道夫
Ruby之父--松本行弘
Perl之父--Larry Wall
JavaScript之父--布兰登·艾奇
Java为什么不能继承多个父类
这个问题,java之父曾经回答过,设计java语言的初衷就是要设计一门更加简单的语言,所以java的设计屏蔽了一些负载的东西,其中就包括指针和多继承。为什么说多继承复杂呢?这就要说一个多继承的菱形继承问题(又叫钻石继承)。
菱形继承(钻石继承)
那么菱形继承有什么问题?
资源浪费:移动电话继承了多份父类(硬件)的属性(getCreateTime()的引用);
二义性:移动电话的getId无法确定是返回imei还是mac地址。
那么c++中如何解决这个问题?有两种解决办法:
1. 通过域限定来访问,能够解决二义性问题,例如
移动电话 d = 移动电话()
d.网络设备::id
d.电话::id
2. 通过虚继承,能够解决资源浪费和部分二义性问题,例如
class 电话:virtual public 硬件{}
class 网络设备:virtual public 硬件{}
移动电话 d = new 移动电话()
d.id//这时候访问的是硬件::id
较真的朋友可能会问,如果重名的属性不在硬件类里面定义会怎么样?是的,如果上述例子的硬件类并没有定义id,那么二义性依然存在并导致编译无法通过,所以虚继承为什么说只是部分解决二义性问题。
是不是很复杂?所以java直接舍弃多继承,避免这种二义性,改用多实现接口的方式代替,因为即使接口的方法重复了,多实现里面要求实现类自己去实现方法,也就是相当于强制要求实现类去覆盖同名属性,解决二义性问题。