「java上溯造型」上溯造型和下溯造型
本篇文章给大家谈谈java上溯造型,以及上溯造型和下溯造型对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
JAVA里什么是上转型对象?
class Human{
public void drink(){System.out.println("Human");}
}
class YongMan extends Human{
public void drink(){System.out.println("YongMan");}}
}
public class Test{
public static void main(String arge[]){
Human e2=new YongMan();
e2.drink();
}
}
以上面这个程序为例子
Human e2=new YongMan();
这句其实是指父类对象e2是子类YongMan对象的上转型对象
上转型对象不能操作子类新增的成员变量(失掉了这部分属性);不能使用子类新增的方法(失掉了一些功能)。
上转型对象可以操作子类继承或者隐藏的成员变量,也可以使用子类继承的或者重写的方法。上转型对象操作子类继承或重写的方法,其作用等价于子类对象去调用这些方法。因此,如果子类重写了父类的某个方法,则当对象的上转型对象调用这个方法时一定是调用了这个重写的方法
上面的YongMan 类中的drink()方法 重写了父类的方法
所以最后的输出结果是YongMan
java 中什么叫上朔造型和下朔造型,它们的区别 与用法
上溯造型指基类(或超类super class)或接口,下溯类型指继承或实现了类或者接口的子类.
说白了就是父类和子类,区别与用法不用我多说了吧,懂java的多态的话就知道.
java 子类中有和父类同名的变量,如何通过上溯造型使用子类的该变量
public abstract class Father{
protected String str = "Father";
public String getFatherValue(){return this.str;}
public abstract String getSonValue();
}
public class Son extends Father{
protected String str = "son";
public String getSonValue(){return this.str;}
}
public class Test {
public static void main(String... args){
Father f = new Son();
System.out.println(f.getSonValue());
}
}
看见了没有?!
用面向对象的思想!
如果你不要方法获取的这种形式,下面这种也行
import java.lang.reflect.Field;
public class Test {
public static void main(String... args) throws Exception {
Father f = new Son();
Field field = f.getClass().getDeclaredField("str");
System.out.println(field.get(f));
}
}
只不过这种就获取不到父类的变量的值了
关于java上溯造型和上溯造型和下溯造型的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-03,除非注明,否则均为
原创文章,转载请注明出处。