欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java上下转型

程序员文章站 2022-07-09 23:23:35
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

相关标签: java