1Java语言程序设计与开发第15讲继承2Java语言程序设计与开发2上次回顾Math、System、日期时间类等系统常用类(重点)包的概念(重点)包的用途(重点)包之间的访问(重点)访问控制符(重点)(难点)3Java语言程序设计与开发3本讲目标熟练掌握继承的特点(重点)熟练掌握继承的基本语法(重点)熟练掌握super关键字(重点)熟练掌握final类(重点)熟练掌握继承链中的受保护访问(重点)了解Object类4Java语言程序设计与开发4继承的概念被继承的类称为父类继承父类的类称为子类执行继承时,子类将获得父类的属性,并具有自身特有的属性Person类:nameageStudent类:numberTeacher类:empClass学生类,继承了父类的姓名和年龄属性外还包含学号人类,具有姓名和年龄两个属性老师类,继承了父类的姓名和年龄属性外还包含职称5Java语言程序设计与开发5继承的概念父类子类父类/子类是相对的Cow类Lion类Tiger类Animals类Carnivorous类Herbivorous类Coat类6Java语言程序设计与开发6继承的特点继承的特点具有层次结构子类继承了父类的属性和方法7Java语言程序设计与开发7继承的优点继承的优点代码的可重用性父类的属性和方法可用于子类设计应用程序变得更加简单可以轻松地自定义子类8Java语言程序设计与开发8继承的实现编写一个父类使用extends关键字,编写子类classCarextendsVehicles{/**构造方法.*/Car(){}/**显示子类Car的信息.*/voidshow(){System.out.println(“从子类Car中输出的信息);System.out.println(“交通工具的名称-+name);System.out.println(“交通工具的颜色-+color);System.out.println(“座位的数量-+seats);System.out.println(==============================);}}classVehicles{/**存储交通工具的名称.*/protectedStringname=HondaCivic;/**存储颜色信息.*/protectedStringcolor=Red;/**存储座位信息.*/protectedintseats=5;/**构造方法.*/Vehicles(){}/***显示父类汽车的详细信息*/voidshowDetail(){System.out.println(从父类Vehicles中输出的信息);System.out.println(名称-+name);System.out.println(颜色-+color);}}publicclassCarTest{/***构造方法*/CarTest(){}/***这是main方法*@paramargs传递至main方法的参数*/publicstaticvoidmain(String[]args){/*声明一个对象*/Carvehicle=newCar();vehicle.show();vehicle.showDetail();}}9Java语言程序设计与开发9直接继承与间接继承直接继承classA{}classBextendsA//A是B的直接父类{}间接继承classA{}classBextendsA{}classCextendsB//A是C的间接父类{}10Java语言程序设计与开发10super关键字子类构造方法的名称与类的名称相同先调用父类构造方法,再调用子类构造方法要调用父类构造方法,使用关键字super11Java语言程序设计与开发11super关键字调用父类构造方法的语法为:super()或super(参数列表);super()方法始终指向调用类的父类12Java语言程序设计与开发12super关键字关键字super的用法classFictionAuthorextendsAuthor{/**存储作者的小说类型.*/Stringstorytype;/**子类构造方法.@paramname传递至构造方法的参数@paramtype传递至构造方法的参数*/FictionAuthor(Stringname,Stringtype){super(name);storytype=type;System.out.println(“从FictionAuthor类输出);System.out.println(“小说类型为+storytype);}}调用父类构造方法Author(Stringstr){name=str;System.out.println(“从Author类输出);System.out.println(“姓名为+name);}13Java语言程序设计与开发13final类final关键字可修饰变量、方法、类、引用–修饰变量称为常量,该变量的值不能再改变–修饰方法称为最终方法,该方法不能被子类覆盖–修饰类称为最终类,该类不能有子类–修饰对象引用,该引用不能再指向其它对象,但可改变所指对象的值14Java语言程序设计与开发14继承中的访问权限本类访问权限–本类方法可访问本类所有变量–本类对象不可访问本类private变量子类访问权限–子类方法不可访问父类private变量–子类对象不可访问父类private变量15Java语言程序设计与开发15继承中的访问权限该类及其子类的成员可以访问,同一个包中的类也可访问protected16Java语言程序设计与开发16Object类Object类是类体系结构的根Java系统中的每个类都是Object类直接或间接的子类Object类包括在java.lang包中此类定义了所有对象都具备的基本状态和行为可以用类型为Object的变量来引用任意类型的对象17Java语言程序设计与开发17总结继承的特点继承的基本语法(extends关键字)super关键字final类继承链中的受保护访问Object类(所有类的超类)18Java语言程序设计与开发18课后任务完成学习手册上的实验和题目