配色: 字号:
Java语言程序设计基础课件ppt第5章 继承-1
2022-08-19 | 阅:  转:  |  分享 
  
第5章继承第一讲本章学习目标理解继承的含义掌握继承的方法掌握方法的覆盖掌握父子类对象的转化掌握final修饰符的用法掌握a
bstract修饰符的用法本节课内容继承的定义属性的继承和隐藏满足继承关系的例子汽车类轿车巴士计程车class
Bus{publicStringnumber;publicStringcolor;publi
cvoidstart(){}publicintstation;publicvoidsellTicket
(){}}classAutocar{publicStringnumber;publicString
color;publicvoidstart(){}}classBusextendsAutocar{
publicintstation;publicvoidsellTicket(){}}右侧代码是等价的例子
继承的定义面向对象中在已有类的基础上扩展出新类的方式称为继承。继承用于描述两个类之间的“is-a”关系。扩展出的新类称为子类(
次类--subclass),被继承的类称为父类(超类--superclass)。继承的语法(Inheritance)[修饰符]
class子类名extends父类名{类体;}例如:classAppleextendsFruit
{…}【注】Java只支持单重继承,即只有一个父类的继承关系示例:SchoolMember.java
要点在继承中:子类可以得到父类的属性和方法。子类可以添加新的属性和方法。子类可以重新定义父类的属性和方法。School
Member.java举一反三定义SchoolMember的子类Teacher类,该类除了有父类的特征外,还应有主讲课程(t
each)属性和访问器方法,同时需要有能够介绍主讲课程的introduce方法。继承要点:子类只能继承父类中可访问的属性父子
类在一个包中,子类可以继承父类中的非私有属性父子类不在一个包中,子类可以继承public类中的,public属性和protect
ed属性属性的继承与隐藏属性的继承父子类在同一个包中Base.java(5-2)父子类不在同一个包中Base.java
(5-3)Inh2.java属性隐藏子类可以定义与父类同名的属性,称为属性隐藏。即子类重新定义父类的属性。示例:Test.
java要点调用属性的规则:先在当前类中找,如果没有再到其父类中找,以此类推。当子类执行继承自父类的操作时,处理的是继承自父
类的属性,当子类执行自己定义的方法时,处理的是子类自己重新定义的同名属性。要点如果想要调用被隐藏的父类属性,静态属性可以使用“
类名.属性名”;非静态属性可以用“super.属性名”方法的继承与覆盖方法的继承方法的继承原则与属性一致示例Base.j
ava(5-5)Base.java(5-6)Inh5.java方法的覆盖在子类中可以定义
与父类方法头相同的方法,称为方法的覆盖。也可以说,通过方法覆盖,子类可以重新定义父类的方法。示例1:SchoolMember.
java示例2:Test2.java要点方法覆盖:子类中定义与父类中相同方法头的方法。如果在子类中要调用被覆盖的方法,对于
静态方法,可以使用“类名.方法名”调用,对于非静态方法,可以使用“super.方法名”调用注意要点子类在重新定义父类中的已有方
法时,应保持和父类中该方法相同的方法头,即有完全相同的方法名、返回值类型和参数列表。方法覆盖时,子类方法不能缩小父类方法的访问权
限。比如:父类的方法如果是protected,子类方法只能是protected或者public举一反三根据已有的Person
类,定义其子类Employee类,参见教材138页-139页练习.doc继承关系中的构造方法在创建子类对象时,先调用父类构
造方法,然后再调用子类构造方法示例:TestConstructor.java默认情况下,子类调用父类无参的构造方法继承关系中
的构造方法如果父类中只提供有参没有无参的构造方法,则在默认情况下,创建其子类对象会出错。示例:TestConstructor.
java继承关系中的构造方法如果希望调用父类有参构造方法,可以借助super完成。示例:TestConstructor.ja
vasuper在子类中调用父类的属性和方法super指当前类的父类对象,所以不能在静态方法中使用。在子类构造方法中指明调
用父类的构造方法。必须写在子类构造方法的第一条。构造方法使用原则先调用父类构造方法,再调用子类构造方法默认调用父类无参构
造方法可用super在子类构造方法中指明调用父类构造方法总结:this和super的用法this代表当前类的对象;supe
r代表当前类的父类对象。this可以调用当前类当中的其他构造方法,而super可以调用当前类父类中的构造方法。注意:this和
super都不能用在static修饰的方法内;并且this和super不能同时使用示例编写圆Circle类的子类圆柱Cyli
nder。Circle.javaCylinder.javafinal修饰符final可以修饰属性和局部变量,称为常量,一旦
赋值不能修改。比如:finaldoublePI=3.14;示例:BlankFinal.java注意,如果常量类型为
引用类型时,只是这个引用值不能改变,并不是引用的对象的属性不能改变。final修饰符final可以修饰方法,称为最终方法。f
inal方法在子类中不能被覆盖示例:FinalOveride.javafinal修饰符final可以修饰类,称为最终类最终类不能被继承,或者说最终类没有子类。示例:FinalClass.java要点 final可以修饰:属性或局部变量,不能被修改(常量)方法,不能被覆盖(最终方法)类,不能被继承(最终类)
献花(0)
+1
(本文系在羡智库原创)