java上下转型
程序员文章站
2022-04-07 18:04:27
java的多态上下转型今天实在是被Java的上下转型搞晕了,所以总结一下例子java向上转型java向下转型以上均为个人浅薄的总结,欢迎大家批评指正!!!今天实在是被Java的上下转型搞晕了,所以总结一下例子public class Father{void function1(){System.out.println("hello father function 1");}void function2(){System.out.println("hello father funct...
今天实在是被Java的上下转型搞晕了,所以总结一下
例子
public class Father{
void function1(){
System.out.println("hello father function 1");
}
void function2(){
System.out.println("hello father function 2");
}
}
public class Child{
void function1(){
System.out.println("hello child function 1");
}
void function3(){
System.out.println("hello child function 3");
}
}
public static void main(String[] args){
Father f=new Child();//这是向上转型
f.function1();//输出结果为hello child function 1
f.function2();//输出结果为hello father function 2
//f.function3();//该语句会报错
Child c=(Child) f;//向下转型
//Child c=(Child) new Father(),该语句会报错
c.function1();//输出结果为hello child function 1
c.function2();//输出结果为hello father function 2
c.function3();//输出结果为hello child function 3
}
java向上转型
- 通过上面的实验,我们可以看出一下几点规则
–1,如果子类重载了父类的方法,那么会调用子类的方法
–2,子类无法访问自己特有的方法
–3,父类可以访问自己的方法
–4,同理,父类可以访问自己的变量,但不能访问子类的变量(读者可自行证实)
java向下转型
- 说一点我自己的对java向下转型的理解
– 我认为Java向下转型是基于Java向上转型的,java的向上转型,本质上,就实现了java多态的特性,但是向上转型后,导致子类特有的属性和方法,是无法被访问到的,所以,为了访问这些子类中特有的属性和方法,才引入了java向下转型
以上均为个人浅薄的总结,欢迎大家批评指正!!!
本文地址:https://blog.csdn.net/qq_43445111/article/details/111938276