继承是面向对象的核心特性,以下是我对继承的理解
一.继承的概念:
1.在Java程序中,继承描述的是类与类之间的所属关系,如人和学生,动物和猫,水果和香蕉都是继承关系.
2.在Java程序中,继承就是在一个类的基础上建一个新的类,新的类继承原有的类中非私有的成员变量和方法,并且可以拥有自己特有的成员变量和方法.
二.继承的意义
1.继承使在Java程序中原来不相干的两个类产生了关系(从程序中类的设计关系来说,只有子类必须属于父类中的一种时,才可以使用继承关系)
2.继承可以将Java程序中的代码优化(即可以将一些类中共有的方法提取出来,建立所有类的一个共同的父类,让所有类去继承它,从而实现代码的优化)
三.代码实现Java程序的优化过程(继承)
四.继承关系中子父类中成员变量和成员方法的特点
1.成员变量:子类可以直接调用父类中的非私有(private代表私有,public代表非私有,下同)成员变量(私有成员变量可以通过父类的set/get方法调用),但是如果子类和父类中出现重名的成员变量时,需要在父类成员变量前面加上super(即super.父类的成员变量)才可以调用父类的成员变量,在成员变量前加this(即this.成员变量)则调用的是本类(即子类)中的成员变量.
2.成员方法:同成员变量一样,子类只可以调用父类中的非私有成员方法,同时当子类中存在与父类中名字相同内容不同时,调用子类实现该方法,会调用子类中的成员方法,而将父类中的成员方法覆盖(即不会执行父类中的成员方法).
五.关键字 this,super,extends
1.this:表示对本类对象的引用,用于将本对象的成员与其他同名对象区分开.(同时,在类中的set方法中,哪个对象调用这个方法,this就代表谁)
2.super:当子类与父类中出现同名对象时,用来表示父类对象的关键字,定义格式是super.父类成员变量
3.extends:继承,用来表示一个类继承另一个类.如:class Cat extends Animal(猫类继承动物类)
六.继承的特点
1.Java只支持单继承(即一个类只能继承一个类,不能继承多个类),避免了多继承中出现多个父类出现同名变量和同名方法时无法区分的问题.
2.Java支持多层继承
3.继承中父类定义了子类中共性的内容,子类定义了自己特有的行为
七.继承后对象的内存图
继承
最新推荐文章于 2024-09-03 20:17:53 发布