欢迎来到天天文库
浏览记录
ID:34485586
大小:185.87 KB
页数:9页
时间:2019-03-06
《第七讲 类的继承》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Java语言程序设计第七讲类的继承主要内容类继承实现代码复用继承时方法的重写super关键字final修饰的数据、方法和类类继承实现代码复用每个类都有父类如果没有使用extends关键字,则Object类就是缺省的父类。Object类包含在java.lang包中。所有的类都是从这个类继承而来的。Object类定义了Java系统需要的所有类的行为。类继承的实现一个类能从其它类继承行为与属性,由此直接实现代码复用。杨佩理yangpl@szit.edu.cnJava语言程序设计classSubClassextendsSupe
2、rClass{ClassBody}类继承例程阅读classPerson{intsalary;voidemployed(){if(salary==0)System.out.println("nojob");elseSystem.out.println("job");}}classChildrenextendsPerson{intage;voidprintAge(){System.out.println("Age:"+age);}publicstaticvoidmain(String[]args){Childrenc=ne
3、wChildren();c.salary=560;c.age=12;c.printAge();c.employed();}}练习:有如下Bird类,请再设计一个继承Bird类的SubBird类,在main方法中利用SubBird类,让程序的输出结果为:classBird{doubleh;voidfly(){System.out.println("abirdflysin"+h+"mheightofthesky.");}voidsetH(doubleh){this.h=h;}}classSubBirdextendsBird
4、{}杨佩理yangpl@szit.edu.cnJava语言程序设计构造方法不可继承classA{A(intm){System.out.println("A("+m+")");}}classBextendsA{publicstaticvoidmain(String[]args){newB(100);//B类中无带参构造方法,出错!}}思考与验证:(1)将newB(100)改成newB()会怎样?(2)注释A类中的带参构造方法呢?继承时的对象初始化例程阅读classArt{Art(){System.out.println(
5、"Artconstructor");}}classDrawingextendsArt{Drawing(){System.out.println("Drawingconstructor");}}classCartoonextendsDrawing{Cartoon(){System.out.println("Cartoonconstructor");}publicstaticvoidmain(String[]args){newCartoon();}}静态变量初始化|运行父类的构造方法(默认或主动)(按级别高到低的顺序)|实
6、例变量初始化|调用主类的构造方法杨佩理yangpl@szit.edu.cnJava语言程序设计思考1.一个类如何去继承另一个类?1.一个类继承另一个类时,究竟继承了什么?2.类的继承有什么好处?3.每个类都有父类吗?4.如果类定义时无extends部分,该类的父类是?5.多个子类可以继承自一个父类吗?6.一个类可以同时继承多个父类吗?7.若不希望父类中的某成员被子类所继承,如何实现?8.根类Object在哪个软件包中?9.对象的初始化时,父类的什么样的构造方法能自动执行?10.如何主动调用父类的构造方法?11.父类构造
7、方法的执行时机?方法的重写(overriding)当一个子类继承父类时,子类将自动拥有父类的成员变量和成员方法。问题:如果父类的某个方法对于子类不合适怎么办?方法重写例程阅读classChildrenextendsPerson{intage;voidprintAge(){System.out.println("Age:"+age);}voidemployed(){System.out.println("Achildshouldstudyintheschool.");}publicstaticvoidmain(Strin
8、g[]args){Childrenc=newChildren();c.age=12;c.printAge();c.salary=560;c.employed();}}杨佩理yangpl@szit.edu.cnJava语言程序设计本例重写意义:在继承Persons的子类Children中,重写employed方法,输出“Achild
此文档下载收益归作者所有