白小白的日志

一个菜鸡的心酸之路....

导航

多态的向上和向下转型

1.向上转型:

本质是父类的引用指向子类对象。

语法格式:

父类 父类引用 = new 子类();

将子类的对象赋值给了父类的引用,小范围(子类)转为大范围(父类)

自动转。

父类的引用可以调用父类的所有成员方法,可以调用子类的重写父类的方法。但是不能调用子类独有的方法

案例代码:

package com.july.note;
//
class AA {
public void show() {

}
}
class BB extends AA {
@Override
public void show() {
// TODO Auto-generated method stub
System.out.println("这是重写的AA的方法");
}
public void bb() {
System.out.println("这是BB独有的方法");
}
}
public class Demo3 {
public static void main(String[] args) {
AA aa = new BB();//向上转型
//可以调用重写的 或者父类中的方法 但是不能调用子类独有的方法
aa.show();

}
}

2.向下转型:

语法格式:父类类型 父类引用 = new 子类();

子类类型 子类引用 = (子类类型)分类的引用;//向下转型

案例代码:

package com.july.note;
//
class AA {
public void show() {

}
}
class BB extends AA {
@Override
public void show() {
// TODO Auto-generated method stub
System.out.println("这是重写的AA的方法");
}
public void bb() {
System.out.println("这是BB独有的方法");
}
}
public class Demo3 {
public static void main(String[] args) {
AA aa = new BB();//向上转型
//可以调用重写的 或者父类中的方法 但是不能调用子类独有的方法
//父类类型 父类引用 = new 子类();
//子类类型 子类引用 = (子类类型)父类的引用;向下转型
BB bb = (BB)aa;
aa.show();
//
bb.show();
bb.bb();

}
}

posted on 2022-07-27 21:02  白小白的日志  阅读(40)  评论(0)    收藏  举报