欢迎来到天天文库
浏览记录
ID:39969102
大小:442.00 KB
页数:42页
时间:2019-07-16
《java面向对象编程进阶》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章Java面向对象编程进阶5.1内部类和匿名类(略)5.2抽象类5.3继承5.4包5.5接口abstractclassShape//说明一般二维图形抽象类{abstractdoublearea();//计算图形面积的方法abstractvoiddraw();//绘制图形的方法}有时,由于对象高级抽象的需要,希望类只需要说明方法首部,而不需要或不可能说明其方法体,其方法体只能由其子类来完成,这样的类需要使用abstract关键字修饰,这种类被称为抽象类。抽象类不能创建任何对象,抽象类只是用来由其子类继承。继承抽象类的子类比它的父类更加具体化、特殊化。例5-1
2、抽象类Shape5.2抽象类classRectangleextendsShape{//矩型类Rectangle继承了Shape类intwidth;//矩形的宽intlength;//矩形的长punlicdoublearea(){returnwidth*length//矩形类实现了Shape类的抽象方法area()}publicvoiddraw(){…}//这里要实现Shape类的抽象方法draw()}5.3继承5.3.1继承概述5.3.2继承语法格式5.3.3子类对父类成员重载5.3.4null,this,super5.3.5多态性5.3.6final类(最终
3、类)在Java编程语言中,通过继承可利用已有的类,并扩展它的属性和方法。这个已有的类可以是语言本身提供的、其他程序员编写的或程序员原来编写的。如果在声明类A时,指明类A继承了类B(类B是一个已定义了的类),则类A通常就拥有了类B的成员变量和方法。此时,类B称为类A的父类(superclass),父类也称为超类或基类;类A称为类B的子类(subclass),子类也称为派生类。Object类是Java中所有类的父类,也就是说Java中的类直接或间接有Object类派生而来。Java中实行单继承,即一个类只能有一个父类。5.3.1继承概述一个类只可继承一个父类,但一
4、个类可以有被多个子类继承。因而类之间的关系就形成了所谓的树形层次结构:………………类A类C1n类C11类Bm类B2类B1类Cm1类Cmn在Java中,java.lang.Object类是Java所有类的父类。类继承语法形式如下:[修饰符]classSubClassNameextendsSupperClassNameextends是继承关键词。SubClassName是新的子类名,SupperClassName是继承的父类名。父类名是必需的,而且只能有一个,因为Java中实行单继承。父类名所指定的类必须是在当前编译单元中可以访问的类,否则会产生编译错误。5.3.
5、2继承语法格式子类的特性:①子类拥有其父类的所有属性和方法。但父类中说明为private的属性和方法,子类不可直接访问。②子类可以对父类的方法覆盖或重载。例.5-2子类与父类classA{privateinta;protectedintb;publicintc;publicvoidsetA(intaa){a=aa;}publicintgetA(){returna;}}classBextendsA{intd;publicstaticvoidmain(Stringargs[]){Bb1=newB();b1.setA(10);b1.b=20;b1.c=30;b1.d
6、=b1.getA()+b1.b+b1.c;System.out.print(b1.d);}}子类可以对父类的方法覆盖或重载。方法覆盖:子类的方法首部与父类的方法首部相同,但是子类重新实现了该方法。方法重载:Java中方法可重载,就是方法名相同但形参列表不同之方法。子类的方法对父类的方法也可重载。5.3.3子类对父类成员重载如果子类声明了一个与父类的成员变量同名的成员变量,则称父类的该成员变量被隐藏(Hiding),如果子类声明了一个与父类的成员方法同名的成员方法,则称父类的该成员方法被重写(Overriding)。关键字this和super分别用来指明子类和父
7、类中同名的成员变量和方法。当父类的成员变量、子类的成员变量和类的对象方法使用的局部变量三者同名,或其中两个同名时,可以使用关键字this和super来指定所要使用的变量。继承是面向对象编程的主要优点之一,它对如何设计Java类有着直接的影响。继承有如下几点好处:(1)它可以利用已有的类来创建自己的类,只需要指出自己的类和已有的其它的类有什么不同即可,而且还可以动态访问其它有关的类中的信息。(2)通过继承,可以利用Java类库所提供的丰富而有用的类,这些类都已经被很好地实现。(3)当设计很大的程序时,继承可以使程序组织得更加层次清晰,有利于程序设计和减少错误的发
8、生。例5-3子类与父类的继承关系pub
此文档下载收益归作者所有