java入门-----对象转型
对象转型
1.向上转型:子类类型 转 父类类型
可以调用父类非私有化属性 可以调用父类非私有化方法 可以调用子类重写父类的方法 不可以调用子类属性和方法
1.动物类
public class Animal {
public void eat() {
}
public void shout() {
}
}
2.猫
public class Cat extends Animal{
public void shout(){
System.out.println("喵喵喵~~~");
}
}
3.狗
public class Dog extends Animal{
public void eat(){
System.out.println("啃骨头~~~");
}
}
public class Test01 {
public static void main(String[] args) {
Animal an = new Dog();
an.eat();
}
}
啃骨头~~~
注意:向上转型就是多态
多态的缺点:不可以调用子类自己的属性和方法
2.向下转型:父类类型 转 子类类型
注意: 1.向下转型转不好就会出现ClassCastException - 类型转换异常 2.向下转型一定要使用instanceof判断
public class Test01 {
public static void main(String[] args) {
Animal an = new Dog();
if(an instanceof Cat){
Cat cat = (Cat) an;
cat.shout();
}else if(an instanceof Dog){
Dog dog = (Dog) an;
dog.eat();
}
}
}
啃骨头~~~
|