欢迎来到天天文库
浏览记录
ID:61909436
大小:340.00 KB
页数:60页
时间:2021-03-28
《Java程序设计类和方法——继承多态抽象类精讲.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Java程序设计第3章类和方法——继承与多态、接口继承与多态接口导入我们在介绍java语言类继承之前,先来探讨一种具有普遍性的问题:一位面向对象的程序员”小A”在编程过程中需要描述和处理个人信息,于是他定义了类Person,其结构如下:继承与多态接口Person类publicclassPerson{publicStringname;publicchargender;publicintage;publicvoidgetDetails(){….}}一周以后,”小A”又遇到了新的需求—需要描述和处理学生信息,于是他又定义了一个新的类Student:继承与多态接口Stud
2、ent类publicclassStudent{publicStringname;publicchargender;publicintage;publicStringmajor;publicvoidgetDetails(){….}}小A如是做是可行的,但是我们观察Student和Person类可以发现它们的结构很接近继承与多态接口Student类只比Person类多出一个属性major,却要重复定义其他所有的内容,那么有没有一种方法来解决这个问题呢?Java提供了类似问题的机制,那就是类的继承。引入类继承机制简化后的Student类的定义如下:publicclass
3、StudentextendsPerson{publicStringmajor;}继承与多态接口继承两个类之间的关系:1)当一个类拥有另一个类的所有属性和方法时,就称这两个类之间具有继承关系。2)被继承的类称为超类(superclass)或父类3)继承了父类的类称为子类(subclass)或派生类。使用继承的优点是:1)程序结构清晰2)降低编码代码3)减少程序维护工作量继承与多态接口Java类继承的语法规则Java类继承的语法规则如下:class[extends]{4、ns>*}继承与多态接口类的继承举例classPerson{publicStringname;publicchargender;publicintage;publicvoidgetDetails(){System.out.print("name:"+name+"age:"+age);}}classStudentextendsPerson{publicStringmajor;}publicclassTest{publicstaticvoidmain(String[]args){Students=newStudent();s.name="Bily";s.age=15、8;s.getDetails();}}继承与多态接口super关键字super关键字是当前对象的直接(上一级)父类对象的引用。用于解决如何直接访问从父类继承来的成员的问题。使用场合:1)用来访问直接父类隐藏的数据成员,其使用形式:super.数据成员2)用来调用直接父类中被覆盖的成员方法,其使用形式:super.成员方法(参数)3)用来调用直接父类的构造方法,其使用形式:super(参数)继承与多态接口成员变量的继承与隐藏成员变量的继承:子类域可继承父类的所有非私有域成员变量的隐藏:子类域可继承自己的父类,还可以自己定义域而将父类同名域隐藏。继承与多态接口成员变量6、的继承与隐藏举例classExample1{intx;voidset(inta){x=a;}voidprint(){System.out.println("x="+x);}}classExample11extendsExample1{intx;voidnewset(inta){x=a;}voidnewprint(){System.out.println("x="+x+""+super.x);}}publicclassTest1{publicstaticvoidmain(String[]args){Example11o=newExample11();o.set(107、);o.newset(100);o.print();o.newprint();System.out.println("x="+o.x+""+((Example1)o).x);}}继承与多态接口方法的继承与隐藏方法的继承:子类方法可继承父类的所有非私有方法。方法的覆盖:子类方法可继承自己的父类方法,还可以自己定义方法而将父类同名方法覆盖(格式应保持一致)继承与多态接口方法的继承与隐藏举例classExample2{voidprint(){System.out.println("Thisisthesuperclass");}}classExample21extends8、Examp
4、ns>*}继承与多态接口类的继承举例classPerson{publicStringname;publicchargender;publicintage;publicvoidgetDetails(){System.out.print("name:"+name+"age:"+age);}}classStudentextendsPerson{publicStringmajor;}publicclassTest{publicstaticvoidmain(String[]args){Students=newStudent();s.name="Bily";s.age=1
5、8;s.getDetails();}}继承与多态接口super关键字super关键字是当前对象的直接(上一级)父类对象的引用。用于解决如何直接访问从父类继承来的成员的问题。使用场合:1)用来访问直接父类隐藏的数据成员,其使用形式:super.数据成员2)用来调用直接父类中被覆盖的成员方法,其使用形式:super.成员方法(参数)3)用来调用直接父类的构造方法,其使用形式:super(参数)继承与多态接口成员变量的继承与隐藏成员变量的继承:子类域可继承父类的所有非私有域成员变量的隐藏:子类域可继承自己的父类,还可以自己定义域而将父类同名域隐藏。继承与多态接口成员变量
6、的继承与隐藏举例classExample1{intx;voidset(inta){x=a;}voidprint(){System.out.println("x="+x);}}classExample11extendsExample1{intx;voidnewset(inta){x=a;}voidnewprint(){System.out.println("x="+x+""+super.x);}}publicclassTest1{publicstaticvoidmain(String[]args){Example11o=newExample11();o.set(10
7、);o.newset(100);o.print();o.newprint();System.out.println("x="+o.x+""+((Example1)o).x);}}继承与多态接口方法的继承与隐藏方法的继承:子类方法可继承父类的所有非私有方法。方法的覆盖:子类方法可继承自己的父类方法,还可以自己定义方法而将父类同名方法覆盖(格式应保持一致)继承与多态接口方法的继承与隐藏举例classExample2{voidprint(){System.out.println("Thisisthesuperclass");}}classExample21extends
8、Examp
此文档下载收益归作者所有