资源描述:
《5 继承和接口》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第五章继承和接口第五章继承和接口类的继承类的多态接口包Java类库及主要类的使用5.1.1类继承的实现1.继承:已有类创建新类的机制。[修饰符]class子类名extends父类名{//类体}注意没有extends,默认父类为java.lang.Object只能有一个父类,即单继承子类可以继承父类的成员5.1.1类继承的实现2.子类和父类在同一包中的继承性继承父类非private的成员变量和方法3.子类和父类不在同一包中的继承性继承父类中protected和public的成员变量和方法不继承友好(
2、default)变量和方法访问权限可以不同,但不能降低子类中声明与父类相同的方法完全5.1.1类继承的实现4.方法的重写3.成员变量的隐藏子类中声明的变量隐藏父类的同名变量classBextendsA{inty=100,z;publicvoidspeak(){z=2*y;System.out.println("我是B");System.out.println(y+"“+z);}}返回类型相同方法名相同参数列表相同classA{protecteddoublex=10,y=12.56;publicvo
3、idspeak(){System.out.println("我是A");}publicvoidcry(){y=x+y;System.out.println(y);}}publicvoidspeak(){System.out.println("我是A");}publicvoidspeak(){z=2*y;System.out.println("我是B");System.out.println(y+"“+z);}5.1.2super关键字1.使用super调用父类的构造方法子类构造方法的第一条语句:s
4、uper(参数);缺省时默认为super(),即调用父类的无参构造方法,若父类不提供无参构造方法,出错。代表父类的对象5.1.2super关键字2.使用super操作父类被隐藏的成员super.父类成员变量super.父类成员方法()举例:super的应用classA{intx,y;publicA(intx,inty){this.x=x;this.y=y;}publicvoiddisplay(){System.out.println("InclassA:x="+x+",y="+y);}}class
5、BextendsA{inta,b;publicB(intx,inty,inta,intb){super(x,y);this.a=a;this.b=b;}publicvoiddisplay(){super.display();System.out.println("InclassB:a="+a+",b="+b);}}Note:调用父类的构造方法必须写在第一条语句!publicclassSuperDemo{publicstaticvoidmain(Stringargs[]){Bb=newB(1,2,3
6、,4);b.display();}}InclassA:x=1,y=2InclassB:a=3,b=4练习:体会继承中构造方法和普通方法的不同classA{protectedvoidprint(Strings){System.out.println(s);}A(){print("A()");}publicvoidf(){print("A:f()");}}classBextendsA{B(){print("B()");}publicvoidf(){print("B:f()");}publicstati
7、cvoidmain(Stringargs[]){Bb=newB();b.f();}}A()B()B:f()练习:体会继承中构造方法和普通方法的不同classA{inta;A(inta){this.a=a;print("A()");}……classBextendsA{B(){print("B()");}……publicstaticvoidmain(Stringargs[]){Bb=newB();……}}B(inta){super(a);print(“B()”);}练习2publicclassPers
8、on{privateStringname;privateStringlocation;Person(Stringname){this.name=name;location="beijing";}Person(Stringname,Stringlocation){this.name=name;this.location=location;}publicStringinfo(){return"name:"+name+",locaiton:"+location;}}publicclass