第5章 子类与继承
5.1子类与父类
·利用继承,可以先定义一个共有属性的类,根据该一般类再定义具有特殊属性的子类。
·子类只能有一个父类。
5.1.1子类
·在类的声明中,通过使用关键字extends来定义一个类的子类,格式如下:
class 子类名 extends 父类名{
…
}
例如(把Student类定义为People类的子类,People类是Student类的父类):
Class Student extends People{
…
}
5.1.2类的树形结构
·Object是所有类的祖先类。
·每个类(除了Object类)有且仅有一个父类。
5.2子类的继承性
·类可以有两种重要的成员:成员变量和方法。
5.2.1子类和父类在同一包中的继承性
(public protected)不同包
(public protected 友好)同一个包
5.3子类与对象
5.3.1子类对象的特点
·子类中有一部分方法是从父类继承的,这部分方法可以操作这部分未继承的变量。
5.3.2关于instanceof运算符
对象instanceof 类
当左面的操作元是右面的类或其子类所创建的对象时,instanceof运算的结果是ture,否则是false。
5.4成员变量的隐藏和方法重写
5.4.2方法重写
①重写的语法规则:如果子类可以继承父类的某个方法,那么子类就有权利重写这个方法。所谓方法重写,是指子类中定义一个方法,这个方法的类型和父类的方法的类型一致或者是父类的方法的类型的子类型,并且这个方法的名字、参数个数。参数的类型和父类的方法完全相同。
②重写的目的:子类通过方法的重写可以隐藏继承的方法,子类通过方法的重写可以把父类的状态和行为改变为自身的状态和行为。
·如果子类想使用被隐藏的方法或成员变量,必须使用关键字super。
5.6 final关键字
5.6.1final类
可以使用final将类声明为final类。final类不能被继承,即不能有子类。
5.6.3常量
如果成员变量或局部变量被修饰为final,那它就是常量。
5.7对象的上转型对象
把创建好的子类对象赋给已经存在的父类对象。
5.8继承与多态
·上转型是多态的表现方式,通过父类和子类的重写来实现。
5.9 abstract类和abstract方法
·用关键字abstract修饰的方法称为abstract方法(抽象方法)。
·abstract类中可以有abstract方法,也可以没有abstract方法。
5.10面向抽象编程
在设计程序时,经常会使用abstract类,其原因是,abstract类只关心操作,而不关心这些操作具体的实现细节,可以使程序的设计者把主要精力放在程序的设计上,而不必拘泥于细节的实现。