欢迎来到天天文库
浏览记录
ID:56527607
大小:107.00 KB
页数:43页
时间:2020-06-27
《Java程序设计第2版第八章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第8章继承、抽象类和接口1通过本章的学习,主要掌握以下知识点:类的继承子类的创建调用父类中特定的构造方法在子类中访问父类的成员覆盖抽象类接口内部类与匿名类包2本章的重点:类的继承覆盖抽象类接口本章的难点:内部类与匿名类38.1类的继承类的继承是面向对象程序设计的一个重要特点,通过继承可以实现代码的复用,被继承的类称为父类或超类(superclass),由继承而得到的类称为子类(subclass)。一个父类可以同时拥有多个子类,但由于Java中不支持多重继承,所以一个类只能有一个直接父类。4在Java语言中有一个称为java.la
2、ng.Object的特殊类,所有的类都是直接或间接地继承该类而得到的。5通过在类的声明时使用extends关键字来创建一个类的子类,其格式如下:classSubClassextendsSuperClass{……}把SubClass声明为类SuperClass的直接子类,如果SuperClass又是某个类的子类,则SubClass同时也是该类的间接子类。8.1.1子类的创建6如果没有extends关键字,则该类默认为java.lang.Object类的子类。因此,在Java中所有的类都是通过直接或间接地继承java.lang.Ob
3、ject类得到的。所以在此之前的所有例子均是java.lang.Object类的子类。7一、子类的构建方法【例8.1】类的继承,创建个人类Person,再以该类为父类创建一个学生子类Student//app8_1.java继承的简单例子classPerson//Person类是java.lang.Object类的子类{privateStringname;//name表示姓名privateintage;//age表示年龄publicPerson()//定义无参构造方法{System.out.println(“调用了个人构造方法Pe
4、rson()”);}publicvoidSetNameAge(Stringname,intage){this.name=name;this.age=age;}8publicvoidshow(){System.out.println(“姓名:“+name+”年龄:”+age);}}classStudentextendsPerson//定义Student类,继承自Person类{privateStringdepartment;publicStudent()//Student的构造方法{System.out.println(“调用了学
5、生构造方法Student()”);}【例8.1】续9publicvoidSetDepartment(Stringdep){department=dep;System.out.println(“我是”+department+”的学生”);}}publicclassapp8_1//主类{publicstaticvoidmain(Stringargs[]){Studentstu=newStudent();//创建Student对象stu.SetNameAge(“张小三”,21);//调用父类的SetNameAge()方法stu.sho
6、w();//调用父类的show()方法stu.SetDepartment(“计算机系”);//调用子类的SetDepartment{}方法}}【例8.1】续10程序执行的结果为:调用了个人构造方法Person()调用了学生构造方法Student()姓名:张小三年龄:21我是计算机的学生【例8.1】续11说明:1.通过extends关键字,可将父类的成员继承给子类。在使用这些继承过来的成员时,可利用过去惯用的语法即可,如第38和39行均是利用子类所产生的stu对象,调用从父类继承而来的方法。2.Java在执行子类的构造方法之前,会
7、先自动调用父类中没有参数的构造方法,其目的是为了帮助继承自父类的成员做初始化的操作。3.在严格意义上说,构造方法是不能被继承的,例如父Person有一个构造方法Person(String,int),不能说子类Student也自动有一个构造方法Person(String,int),但这并不意味着子类不能调用父的构造方法。12二、调用父类中特定的构造方法通过例8.1可知,即使没有明确地指定构造方法,子类还是会先调用父类中没有参数的构造方法,以便进行初始化的操作。但如果父类中有多个构造方法时,如何才能调用父类中某个特定的构造方法呢。其
8、作法就是在子类的构造方法中通过super()来调用父类特定的构造方法。下面举例来说明。见教材例8.2138.1.2在子类中访问父类的成员使用super不但可以访问父类的构造方法,还可以访问父类的成员变量和成员方法,但super不能访问在子类中添加的成员。访问父类
此文档下载收益归作者所有