预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共74页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第4章继承和多态content4.1什么是继承继承的概念继承的概念is_a关系继承的特点4.1什么是继承4.1.1继承的语法例:继承的语法classStudentextendsPerson{intstuId;Stringname;DateenrolDate;publicStudent(){……}publicStudent(Stringid,Stringname,Datedate){super(id,name);……}}publicclassUndergraduateextendsStudent{StringcollegeName;Stringmajor;publicUndergraduate(){…….}publicUndergraduate(Stringid,Stringname){super(id,name);……}}4.1.2成员的继承子类对父类成员属性和方法的继承例:子类对父类的继承classSonClassextendsParentClass{//派生类中不能继承父类中的私有成员,其他成员均可继承publicvoiddisplayprivate(){//引用父类中私有成员//System.out.println("X="+x);}publicvoiddisplayprotected(){//引用父类中保护成员System.out.println("Y="+y);}publicvoiddisplaypublic(){//引用父类中公有成员System.out.println("W="+w);}publicvoiddisplaydefault(){//引用父类中的默认成员System.out.println("Z="+z);}};classSonClass1extendsParentClass{};publicclassTest4_1{publicstaticvoidmain(String[]args){ParentClassparent=newParentClass();SonClassson=newSonClass();SonClass1son1=newSonClass1();//三句执行的效果一样,son、son1中没有自己定义parentmethod()方法,它继承了父类中的parent.parentmethod();son.parentmethod();son1.parentmethod();}}构造方法的继承构造方法的继承初始化父类与子类传递构造函数4.1.3覆盖和隐藏方法的覆盖例:方法的覆盖成员变量的隐藏4.1.4this和super的用法this的用法例:this的用法PersonA(Stringname,intage){setName(name);//你可以加上this来调用方法,像这样:this.setName(name);但这并不是必须的this.setAge(age);this.print();System.out.println("InPersonAconstuctorwithparameters");}publicvoidsetName(Stringname){this.name=name;//此处必须指明你要引用成员变量}publicvoidsetAge(intage){this.age=age;}publicvoidprint(){System.out.println("Name="+name+"Age="+age);//在此行中并不需要用this,因为没有会导致混淆的东西}}super的用法例:super的用法publicclassPersonCextendsPersonA{publicPersonC(){//super();}publicPersonC(Stringname,intage){super(name,age);}publicstaticvoidmain(String[]args){newPersonC();newPersonC("Mary",3);}}4.1.5final的意义publicclassTest4_13{finaldoublePI=3.14;//在定义时便给址值finalinti;//因为要在构造方法中进行初始化,所以此处便不可再给值Test4_13(){i=100;list=newLinkedList();}Test4_13(intii){i=ii;}publicstaticvoidmain(String[]args){Test4_13b=newTest4_13();}}publicclassTest4_15{publicstaticvoidmain(String[]args){FinalClassf=newFinalClass();f.what();f.pr