java入门-----对象转型

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){//判断an引用指向的对象是否是Cat类型
			Cat cat = (Cat) an;//向下转型
			cat.shout();
		}else if(an instanceof Dog){//判断an引用指向的对象是否是Dog类型
			Dog dog = (Dog) an;//向下转型
			dog.eat();
		}
	}
}
啃骨头~~~
上一篇:python开发基础(四)面向对象--面向对象编程


下一篇:scala 伴生对象有什么作用