java向上转型发生的时机知识点详解

网友投稿 305 2023-01-13

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 {

publichttp:// void sleep() {

System.out.println("Human sleep..");

}

public static void main(String[] args) {

Human h = newhttp:// Male();// 向上转型

h.sleep();

Male m = new Male();// 干嘛要向上转型

m.sABbAUjleep();

// h.speak();此方法不能编译,报错说Human类没有此方法

}

}

class Male extends Human {

@Override

publicABbAUj 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");

}

}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:蚌埠快递物流查询单号(蚌埠顺丰快递网点查询官网)
下一篇:java向下转型基础知识点及实例
相关文章

 发表评论

暂时没有评论,来抢沙发吧~