子类与父类,向上转型与向下转型

作者:本人
来源:原创

定义

向上转型:子类赋给父类
向下转型:父类赋给子类(必须是父引用本身已经指向子类对象的情况,并且要加子类强制转换,否则报错)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class Super {
public name = "父类";
public void MyName(){
System.out.println("名字:"+name);
}
}

public class Sub extends Super{
public name = "子类";
public void MyName(){
System.out.println("名字:"+name);
}
}
public Class Test{
public static void main(String args[]){
Super super = new Sub();//向上转型
Sub sub = (Sub)super;//向下转型,且super指向子类对象
//注属性不会覆写,super是父类型引用所以指向的属性是父类型属性
super.MyName();//输出:名字:父类
sub.MyName();//输出:名字:子类

//super_1指向的是父类型,强制转换的时候出错
Super super_1 = new Super();
Sub sub_1 = (Sub)super_1;//编译错误,ClassCaseException


}
}