- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章动物类派生-继承与多态
第8章 动物类派生——继承与多态 ;能力目标:
理解类的继承,能编写类及其派生子类。
理解多态含义,理解上转型对象,能在子类中重写父类的同名方法。
能运用继承与多态编写人类派生学生类、动物类派生马类等程序。;内容介绍;8.1 任务预览 ;8.2 继承与派生 ;【例8-1】编写人类。再编写继承人类的学生类,学生类还拥有学号字段和学习方法。构造人类和学生类的对象,输出有关信息。;class Pupil1 extends Human1 {
//继承人类的学生类
protected String stuNo; //学号
public Pupil1(String stuNo, String name, char sex, int age)
{
super(name, sex, age);
this.stuNo = stuNo;
}
public void learn( ){ … } //学习方法
}
;public class Example1 {
public static void main(String[] args)
{
Human1 person = new Human1(林冲, 男, 30);
person.think();
System.out.println();
Pupil1 aPupil = new Pupil1(001, 李明, 男, 6);
aPupil.think();
aPupil.learn();
}
};8.3 用protected声明受保护成员 ;【例8-2】按照类封装性要求改写例8-1,以保证字段为private。 ;class Pupil2 extends Human2 {
private String stuNo;
public Pupil2(…){ … }
public void learn( ){ …}
}
public class Example2 {
public static void main(String[] args)
{
Human2 person = new Human2(林冲, 男, 30);
person.think(); …
Pupil2 aPupil = new Pupil2(001, 李明, 男, 6);
aPupil.think(); aPupil.learn();
} }
; 8.4 关键字super8.4.1 用super调用父类构造方法 ;class Pupil3 extends Human3 {
public Pupil3(){
//super(); //相当于执行了本语句
System.out.println(构造了一个学生);
}
}
public class Example3 {
public static void main(String[] args) {
Pupil3 pupil = new Pupil3();
}
}
Student;8.4.2 用super访问父类字段和方法 ;1、成员的隐藏;2、子类通过重写可以隐藏已继承的实例方法。
1.重写的语法规则
如果子类可以继承父类的某个实例方法,那么子类就有权利重写这个方法。
方法重写是指:子类中定义一个方法,这个方法的类型和父类的方法的类型一致或者是父类的方法的类型的子类型,并且这个方法的名字、参数个数、参数的类型和父类的方法完全相同。
2.重写的目的
子类通过方法的重写可以隐藏继承的方法,子类通过方法的重写可以把父类的状态和行为改变为自身的状态和行为。Bank; 8.5 类类型变量赋值8.5.1 子类对象的上转型对象 ;这种由父类变量引用的子类对象就是上转型对象。特征:
(1)上转型对象不能操作子类新增的成员字段和成员方法。
(2)上转型对象能使用父类被继承或重写的成员方法、被继承或隐藏的成员变量。
(3)如果子类重写了父类的方法,则上转型对象调用该方法时一定是重写后的方法(多态性)。
(4)如果子类重新定义了父类的同名字段,即隐藏了父类的字段,则上转型对象访问该字段时必定是父类本身的字段。
;【例8-4】编程,测试子类对象的上转型对象以及还原后的子类对象。;8.5.2 子类变量不能引用父类对象 ;8.5.3 兄弟类对象不能相互替换
文档评论(0)