1)子类与父类
子类继承父类的属性与行为
Java不支持多重继承,即子类只能有一个父类
class 子类名 extends 父类名{
…}
class Student extends People{
…}
Object是所有类的祖先类
若子类与父类在同一个包中,子类继承了父类中不是private的成员变量与方法作为自己的成员变量与方法,访问权限不变。
若不在一个包中,private与friendly的成员变量不会被继承
(2)子类与对象
子类不继承父类 的私有成员变量
子类按层次结构从上到下的顺序调用所有超类的构造函数
如果父类没有不带参数的构造方法,则在子类的构造方法中必须明确地告诉
instanceof运算符(双目运算符)
左面操作元是对象,右面操作元是类
当左面的操作元是右面的类或者子类所创建的对象是instanceof运算结果为true,否则为false
(3)成员变量的隐藏与方法的重写
所声明的成员变量的名字和父类继承来的成员变量的名字相同(声明的类型可以不同),子类就会隐藏所继承的成员变量
方法重写
子类中定义一个方法,方法的类型和父类方法一致,或者的父类方法的子类型,这个方法的名字,参数个数,参数类型和父类方法完全相同
无法操作被子类隐藏的成员变量和方法
(4)super关键字
子类一旦隐藏了继承的成员变量,那么子类创建的对象就不再拥有该变量,该变量将归关键字super所有。方法同上
使用如super.x、super.play()访问和调用被子类隐藏的成员变量x和方法play()
(5)final关键字
final可修饰类、成员变量、方法中的局部变量
final不能被继承,即不能拥有子类
(6)对象的上转型对象
当用子类创建一个对象,并把这个对象的引用放到类的对象中时
animal a;
a=new tiger;
或者
animal a;
tiger b=new tiger();
a=b;
这时称a是对象b的上转型对象
*上转型对象不能操作子类新增的成员变量
*上转型对象可以访问子类继承或者隐藏的成员变量
*如果子类重写了父类某个实例方法后,当对象的上转型对象调用这个实例方法时一定是调用了子类重写的实例方法
(7)继承与多态
多态性是指父类的某个方法被子类重写时可以产生自己的功能行为
(8)abstract类与abstract方法
用abstract关键字修饰的方法称为abstract方法(抽象方法)
只允许声明,不允许实现,且不许使用final和abstract同时修饰一个方法和类,也不允许使用static修饰abstract方法,即abstract方法必须是实例方法
abstract(抽象)类不能用new运算符创建对象
抽象类中的抽象方法,可以由子类实现
abstract class girlfriend{ //抽象类,封装了两个行为标准
abstract void speak();
abstract void cooking();
}