标签:nim static color system ati 响应 als ring extend
多态:多态性是指允许不同软件元素对同一消息作出响应
把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。
赋值之后,父类型的引用就可以根据当前赋值给它的子对象的特性以不同的方式运作
前提条件:
继承
复写
父类引用指向子类
有多态,就可以升高代码的可扩展性!
class Animal{
public String name;
public Animal(String name){
this.name = name;
}
}
class Dog extends Animal{
public String folorColor;
public Dog(String name,StringfolorColor){
super(name); this.folorColor = folorColor;
}
}
class Cat extends Animal{
public String eyesColor;
public Cat(String name,String eyesColor){
super(name); this.eyesColor = eyesColor;
}
}
public class TestCasting{
public static void main(String args[]){
Animal a = new Animal("a");
Cat c = new Cat("c","cEyesColor");
Dog d = new Dog("d","dForlorColor");
System.out.println(a instanceof Animal); //true
System.out.println(c instanceof Animal); //true
System.out.println(d instanceof Animal); //true
System.out.println(a instanceof Dog); //false
a = new Dog("d2","d2ForlorColor"); //父类引用指向子类对象,向上转型
System.out.println(a.name); //可以访问
//System.out.println(a.folorColor);
//!error 不可以访问超出Animal自身的任何属性
System.out.println(a instanceof Animal); //是一只动物 System.out.println(a instanceof Dog); //是一只狗,但是不能访问狗里面的属性
Dog d2 = (Dog)a; //强制转换
System.out.println(d2.folorColor); //将a强制转换之后,就可以访问狗里面的属性了
}
}
标签:nim static color system ati 响应 als ring extend
原文地址:https://www.cnblogs.com/joenx/p/12930551.html