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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~