向上转型:子类对象当做父类对象来使用,因为子类对象拥有父类对象的所有成员,所以不会发生任何错误。
向下转型:父类对象当做子类对象来使用,因为子类对象部分特性父类并没有,所以需要加强制转换符。
向上转型直接转就行了
class TestA {
int i = 100;
}
class TestB extends TestA {
int y = 200;
}
public class Test
{
public static void main(String [] args){
TestA a = new TestB(); //可以直接转
System.out.println(a.i);
}
}
int i = 100;
}
class TestB extends TestA {
int y = 200;
}
public class Test
{
public static void main(String [] args){
TestA a = new TestB(); //可以直接转
System.out.println(a.i);
}
}
向下转型加强制转换的例子。
class TestA {
int i = 100;
}
class TestB extends TestA {
int y = 200;
}
public class Test {
public static void main(String [] args){
TestA a = new TestB();
TestB b = (TestB)a; //需要加强制转换
System.out.println(b.y);
}
}
int i = 100;
}
class TestB extends TestA {
int y = 200;
}
public class Test {
public static void main(String [] args){
TestA a = new TestB();
TestB b = (TestB)a; //需要加强制转换
System.out.println(b.y);
}
}