java类、接口、包2(ch5)

java类、接口、包2(ch5)

ID:39969005

大小:392.50 KB

页数:40页

时间:2019-07-16

java类、接口、包2(ch5)_第1页
java类、接口、包2(ch5)_第2页
java类、接口、包2(ch5)_第3页
java类、接口、包2(ch5)_第4页
java类、接口、包2(ch5)_第5页
资源描述:

《java类、接口、包2(ch5)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、主要内容5.3类的继承5.4抽象类、接口与包5.3类的继承5.3.1综述运用抽象的原则舍弃对象的特殊性,抽取其共同性,则可得到一个适应于一批对象的类,这就是一般类;而那些具有特殊性的类称为特殊类。即:如果类B具有类A的全部/部分属性和方法,而且又具有自己特有的某些属性和方法,则把类A称作一般类,把类B叫做类A的特殊类。特殊类的对象拥有其一般类的全部或部分属性与方法,称作特殊类对一般类的继承。被继承的类A为基类、父类或超类,而称继承类B为A的派生类或子类。继承避免了对一般类和特殊类之间共同特征进行的重复描述。图5.1在Jav

2、a中,所有的类都是通过直接或间接地继承java.lang.Object类得到的,如图5.1所示。注意:Java与C++不同,不支持多重继承,但可以通过接口实现多重继承。5.3.2子类的创建classsubclassNameextendssuperclassName{…//类体}//如:classRectangleextendsShape{...}说明:新定义的子类可以从父类那里继承所有非private的属性和方法作为自己的成员。实际上,在定义一个类而不给出extends关键字及父类名时,默认这个类是系统类java.lang

3、.object的子类。publicclassCircle{//定义圆类doubleradius;publicvoidsetRadius(doubler){radius=r;}publicdoublegetRadius(){returnradius;}publicdoubleperimeter(){return2*Math.PI*radius;}publicdoublearea(){returnMath.PI*radius*radius;}}classCylinderextendsCircle{privatedoublehe

4、ight;publicvoidsetHeight(doubleh){height=h;}publicdoublegetHeight(){returnheight;}publicdoublevolume(){returnarea()*height;}}publicclassCylinderTest{publicstaticvoidmain(String[]args){Cylindercylin=newCylinder();cylin.setRadius(10);cylin.setHeight(20);System.out.p

5、rintf("Theperimeter=%8.2f%n",cylin.perimeter());System.out.printf("Thefloorarea=%8.2f%n",cylin.area());System.out.printf("Thevolume=%8.2f",cylin.volume());}}1.成员变量的隐藏是指:在子类中重新定义一个与父类中已定义的数据成员名完全相同的数据成员(成员变量),即子类拥有了两个相同名字的数据成员,一个是继承父类的,另一个是自己定义的。当子类引用这个同名的数据成员时,默认操

6、作是引用它自己定义的数据成员,而把从父类那里继承来的数据成员“隐藏”起来。当子类要引用继承自父类的同名数据成员时,可使用关键字super引导*(后面介绍)。举例:c5_7.java2.成员方法继承与覆盖(OverRiding)子类可以继承父类的非私有成员方法。(例:c5_8.java)子类可以重新定义与父类同名的成员方法,实现对父类方法的覆盖。(c5_9.java)classa1{intx=0,y=1;voidMyp(){System.out.println("x="+x+"y="+y);}privatevoidPrint

7、m(){System.out.println("x="+x+"y="+y);}}publicclassc5_8extendsa1{publicstaticvoidmain(Stringargs[]){c5_8p1=newc5_8();p1.Myp();//p1.Printme();}}例:c5_9.javaclassa1{intx=10;inty=31;publicvoidprintme(){System.out.println("x="+x+"y="+y);}}publicclassc5_9extendsa1{intz=

8、35;publicvoidprintme(){System.out.println("z="+z);}publicstaticvoidmain(Stringarg[]){a1p2=newa1();c5_9p1=newc5_9();p1.Printme();p2.Printme();}}运行结果是:z=3

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。