博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[javase学习笔记]-9.2 单继承与多重继承
阅读量:6340 次
发布时间:2019-06-22

本文共 1170 字,大约阅读时间需要 3 分钟。

这一节我们来看java中的单继承和多重继承。

在java语言中,支持的是单继承,不直接支持多继承,可是对C++中的多继承进行了改良。

那么什么是单继承和多继承呢?

单继承:一个子类仅仅能有一个直接父类。

多继承:一个子类能够有多个直接父类。

这个在java中是不同意的。

为什么不同意呢?我们看一个样例:

class A{	void method()	{		System.out.println("a");	}}class B{	void method()	{		System.out.println("b");	}}class C extends A,B{}
对于上面的情况。假设当我们调用C对象的method方法时,就会出现不确定性错误了。java也是以这个问题进行改良,从而不直接支持多继承。

所以我们能够看到,java中不直接支持多继承的原因就是:当多个类中有同样成员时会产生调用的不确定性。

java语言中还支持多重继承。

比方以下的样例就是一个多重继承:

class A{}class B extends A{}class C extends B{}
这就是多重继承的形式,对于上面的继承,就出现了继承体系。而在这个继承体系中,A是最顶层类,C是对子类。

通过上面的继承体系我们不难看出。A实现的是最基本最基础的功能。

那么我们在实际开发中应该怎样使用这个继承体系呢?

第一步:查看该体系中的顶层类(这里是A),了解该体系的基本功能。

第二步:创建体系中的最子类对象(这里是C),完毕功能的使用。

通过上面的两步。我们就能够按需使用一个继承体系了。

这两节我们一直在说继承。在9.1中我们也说到继承能够提高代码的复用性,可是我们一定要注意:千万不要为了提高代码复用性去定义继承

这是为什么呢?我们看以下样例:

class A{	void method1(){}	void method2(){}}class B{	void method1(){}	void method3(){}}
我们发现两个类中都有method1方法。那么我们为了提高复用性而去继承:

class A{	void method1(){}	void method2(){}}class B extends A{	void method3(){}}
B类中确实有了method1方法,能够也同一时候继承了method2方法,但method2方法事实上并非B中的方法。这就出现了问题。

这就让我们必须明白什么时候定义继承:当类与类之间存着所属关系时。就定义继承

那么什么是所属关系呢?比方X是Y中的一种,就是说X属于Y。就是一种所属关系。

我们这样表示所属关系:is a 关系。就是所属关系。

所以当我们发现两个类是一种is a 关系时,我们就能够定义继承。

转载地址:http://qmhoa.baihongyu.com/

你可能感兴趣的文章
浏览器页面乱码
查看>>
Linux基础1之磁盘与分区
查看>>
linux下core dump【总结】
查看>>
前端之JavaScript
查看>>
在网页中插入动态百度地图
查看>>
js小数点相乘或相除出现多位数的问题
查看>>
网络游戏同步法则
查看>>
Android 中的WiFi剖析
查看>>
react native android打包流程
查看>>
blog与log
查看>>
磁盘管理
查看>>
我的友情链接
查看>>
AWR报告
查看>>
MySQL innobackupex全备
查看>>
autofs自动挂载
查看>>
NumberUtils的简单学习
查看>>
centos7和win7双系统安装
查看>>
Linux用户权限(随笔)
查看>>
生产服务器环境最小化安装后 Centos 6.5优化配置备忘
查看>>
Manual close is not allowed over a Spring managed SqlSession
查看>>