类型转换问题,来帮忙解决下
public class Test{
public static void main(String[] args){
A a = new A();
B b = new B();
A c = (B)a;//这里会报错
c.show();
}
}
class A{
int age;
String name;
public void show(){
System.out.print(age+" "+name);
}
}
class B extends A{
int age;
String name;
public void show(){
System.out.print(this.age+" "+this.name);
}
}
A c = b;
public class Test {
public static void main(String[] args) {
A a = new A();
B b = new B();
//A c = (B) a;// 这里会报错
A c=(A)b;//只能子类强转为父类,父类不能强转为子类
c.show();
b.show();
a.show();
}
}
class A {
int age;
String name;
public void show() {
System.out.println("父类A:"+age + " " + name);
}
}
class B extends A {
int age;
String name;
public void show() {
System.out.println("子类B:"+this.age + " " + this.name);
}
}
A c=(A)b;//只能子类强转为父类,父类不能强转为子类
A c = b;
指明之后,c 既可以说是 Animal 又可以说 是 Cat.说的有点啰嗦了,总之一句话:
在不知晓 该Animal对象是不是Cat前,强制转换很危险,必需确定Ta 是Cat