Java面向对象_继承思想——继承关系
Posted sunNoI
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java面向对象_继承思想——继承关系相关的知识,希望对你有一定的参考价值。
2018-05-01
劳动是为了更好的享受生活。
继承思想
一、继承的概念
继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的某些数据属性和行为,并能扩展新的能力。
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法。
继承就是子类通过继承父类的方式获得父类的public/protected变量和方法使用权”的一个东西。
被继承的类:super class (父类/超类/基类/被拓展类)
sub class:子类/拓展类
父类:用来存放共性(共同的特性(状态和行为))
子类:用来存放特性(自己特有的特性(状态和行为))
继承可以解决代码重复的问题,真正的作用是表达出一个体系。
二、继承关系
1、什么是继承关系?
基于某个父类对对象的定义(这里的定义包括字段、方法以及内部类)加以拓展,而产生新的类的定义,子类可以继承父类原有的某些定义,也可以增加父类原来所没有的定义,或者覆盖(修改)父类中的某些特性。
从面向对象来说,继承是一种从一般到特殊的关系,在逻辑上其本质是is-a的关系。即子类是父类的拓展,它是一种特殊的父类。
比如狗是动物的一种特殊情况,狗属于动物。比如赤兔马,既是马,也是动物。
-----------------------------------------------------------------------------------------------------------------------------
2、类的继承格式
在 Java 中通过 extends 关键字可以申明一个类继承另外一个类,一般形式如下:
---------------------------------------------------------------------------------------------------------------------------
3、继承的分类
在Java中,类和类之间的继承关系只允许单继承,不允许多继承。单继承就是一个子类只能继承一个父类。多继承是一个子类可以有二个或以上的父类。也就是说类A,只能有一个直接的父类,类A不能同时继承类B和类C。而接口支持多继承。
Java中允许多重继承。多重继承就是,例如A类继承B类,B类继承C类,所以按照关系就是C类是B类的父类,B类是A类的父类。
-------------------------------------------------------------------------------------------------------------------------------------------------------------
4、Object类
java.lang.Object
java.lang包在使用的时候无需显示导入,编译时由编译器自动导入。
Object类是类层次结构的根,Java中所有的类从根本上都继承自Object类,即Object类要么是一个类的直接父类,要么是一个类的间接父类。
Object类是Java中唯一没有父类的类(不能自己继承自己)。
其他所有的类,包括标准容器类,比如数组,都继承了Object类中的方法。
-----------------------------------------------------------------------------------------------------------------
二、子类到底继承了父类那些成员?(根据访问修饰符来判断)
- 父类的 public 成员继承为子类的public 成员,就好像他们直接定义在子类中一样。
- 父类的 protected 成员继承为子类的protected 成员。就好像他们直接定义在子类中一样。
- 父类的 包访问成员(父类和子类在同一个包中,父类使用缺省修饰符) 继承为子类的包访问成员。就好像他们直接定义在子类中一样。
- 父类的private成员不能被子类继承,因为private只能在本类中访问,子类不能访问。但是子类对象的确包含父类的私有成员。
- 父类的构造器不能被子类继承,因为构造器必须和当前类名相同。
注意:不要背诵文字,应该写代码去实践。
以上是关于Java面向对象_继承思想——继承关系的主要内容,如果未能解决你的问题,请参考以下文章