《面向对象高级技术.ppt》由会员分享,可在线阅读,更多相关《面向对象高级技术.ppt(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、面向对象高级技术2本单元教学内容n子类构造器方法n子类对父类成员变量的隐藏n子类对父类成员方法的覆盖子类构造器n为Vehicle类添加构造器方法,观察编译结果n子类构造器q构造器主要用来完成对类成员属性进行初始化,子类中的属性包含从父类继承下来的属性和自己新添加的属性q属性初始化的顺序规定为:先初始化从父类中继承的属性,再初始化子类新添加属性。n格式:constructor()super(父类构造器参数);/调用父类构造器 其它;/对本类属性进行初始化或其它处理代码编程实践n例43n实战演习:q按照习题1、2修改PlainRect类子类对父类属性的隐藏n例题4_4n如果子类声明了一个与父类的成
2、员变量同名的成员变量,则称父类的该成员变量被隐藏(hiding)n下面代码段的输出结果是?class A protected int x=10;class B extends A private int x=20;void print()System.out.println(“x=“+x);public static void main(String args)B b=new B();b.print();1.1.输出输出x=20 x=20还是还是x=10?x=10?2.2.如何访如何访问从父类问从父类继承下来继承下来的的x x值?值?this与supern每个类中有两个隐含的对象this与su
3、per:qthis是代表本类的一个对象,可以通过this.属性的形式来引用本类的属性;qsuper是代表父类的一个对象,可以通过super.属性的形式来引用父类的属性;q使用this与super可以解决父类属性被隐藏的情况;n如果在方法内部也有与类成员属性同名的变量,可以这样来区分它们(以变量名为x为例):qx:代表方法的局部变量qthis.x:代表本类的成员属性值qsuper.x:代表从父类继承下来的但被隐藏的x值子类对父类方法的覆盖n如果子类声明了一个与父类的成员方法同名的成员方法,则称父类的该成员方法被重写或覆盖(overriding)n方法覆盖是Java实现多态性机制的另一种方式。n出现方法覆盖时,同样可通过this和super来区分是父类方法还是子类方法。n方法覆盖规则:q1.方法名、参数个数、对应参数类型一样,也称为方法签名一样;q2.返回值类型一样;q3.子类方法的访问控制较父类方法访问控制修饰更松;实战演习n调试p81页中的类Car5n编写Car5的测试程序(p82)n习题3、4