java向上转型发生的时机知识点详解
更新时间:2021年05月23日 16:10:09 作者:小妮浅浅
在本篇文章里小编给大家整理分享的是关于java向上转型发生的时机知识点内容,有兴趣的读者们可以参考下。
1、直接赋值
public static void main(String[] args) {
//父类引用 引用了 子类引用所引用的对象
Animal animal = new Cat();;//向上转型
}
2、方法传参
把一个Cat的子类传给一个Animal类型的父类,这里也是能发生向上转型的。
public class Test extends TestDemo {
public static void func(Animal animal) {
}
public static void main(String[] args) {
//父类引用 引用了 子类引用所引用的对象
Cat cat = new Cat();
func(cat);
}
}
3、方法返回
func方法的返回类型是Animal,但返回的确是一个Cat类型,这里也是发生了向上转型。
public class Test extends TestDemo {
public static Animal func() {
Cat cat = new Cat();
return cat;
}
public static void main(String[] args) {
Animal animal = func();
}
}
实例扩展:
package multistate;
public class Human {
public void sleep() {
System.out.println("Human sleep..");
}
public static void main(String[] args) {
Human h = new Male();// 向上转型
h.sleep();
Male m = new Male();// 干嘛要向上转型
m.sleep();
// h.speak();此方法不能编译,报错说Human类没有此方法
}
}
class Male extends Human {
@Override
public void sleep() {
System.out.println("Male sleep..");
}
public void speak() {
System.out.println("I am Male");
}
}
class Female extends Human {
@Override
public void sleep() {
System.out.println("Female sleep..");
}
public void speak() {
System.out.println("I am Female");
}
}
到此这篇关于java向上转型发生的时机知识点详解的文章就介绍到这了,更多相关java向上转型发生的时机内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
SpringBoot中使用 ThreadLocal 进行多线程上下文管理及注意事项小结
本文详细介绍了ThreadLocal的原理、使用场景和示例代码,并在SpringBoot中使用ThreadLocal保存请求中携带的用户信息,ThreadLocal通过为每个线程维护独立的变量副本,解决了线程安全问题,感兴趣的朋友一起看看吧2025-02-02


最新评论