上转型对象
对象的上转型对象的实体是子类负责创建的,但上转型对象会失去原对象的一些属性和功能(上转型对象相当于子类对象的一个简化对象)。
上转型对象具有如下特点:
1、上转型对象不能操作子类新增的成员变量(失掉了这部分属性)不能调用子类新增的方法(失掉了一些行为)。
2、上转型对象可以访问子类继承或隐藏的成员变量,也可以调用子类继承的方法或子类重写的实例方法。上转型对象操作子类继承的方法或子类重写的实例方法,其作用相当于子类对象去调用这些方法。
注意:
1、不要将父类创建的对象和子类的上转型对象混淆。
2、可以将对象的上转型对象再强制转到一个子类对象,这时,该子类对象又具备了子类所有的属性和功能。
3、不可以将父类创建的对象的引用赋值给予子类声明的对象。(就好比如不能说“人是美国人”)
4、如果子类重写了父类的静态方法,那么子类对象的上转型对象不能调用子类重写的静态方法,只能调用父类的静态方法。
Animal a;
a = new Tiger();
或者
Animal a;
Tager b = beew Tager();
a = b;
继承与多态
多态性就是指父类的某个方法被其子类重写时,可以各自产生自己的功能行为。
例如:
class Animal {
void cry (){
}
}
class Dog extends Animal {
void cry (){
System.out.println("汪汪“);
}
}
class Cat extends Animal{
void cry () {
System.out.println("喵喵”);
}
}
public calss Example {
public static void main (String args []){
Animal animal;
animal = new Dog ();
animal .cry ();
animal = new Cat ();
animal .cry();}
}
}