father = (Son)son;
时间: 2023-12-07 10:03:51 浏览: 105
这是一个IT类问题,这段代码是将一个Son对象转换为其父类Father类型的对象。这个过程称为向上转型。如果Son类是继承自Father类的,那么这个转换是安全的。但如果Son类不是继承自Father类的,那么这个转换会出现编译错误。需要注意的是,向上转型可以隐式进行,也就是说可以不用强制类型转换来实现。
相关问题
Father father = new Son();
这段代码中,Father是一个父类,Son是一个子类,通过实例化一个Son对象并将其赋值给Father类型的变量father,实现了向上转型,即将一个子类对象转化为父类对象的过程。这样做的好处是可以提高代码的灵活性和重用性,使得程序更易于扩展和维护。同时,通过向上转型,也可以实现多态,即同一个方法在不同的对象上表现出不同的行为。
读下面程序,写出程序运行结果。 class Father { int num1=0; public Father(){ System.out.println("num1:"+num1);} public Father(int num1){ this.num1=num1; System.out.println("num1:"+num1); } } class Son extends Father{ int num2=10; public Son(){System.out.println("num2:"+num2);} public Son(int i,int j){ super(i); num2=j; System.out.println( "num1:"+num1+",num2:"+num2); } } public class Demo{ public static void main(String []args){ Father father=new Father(); Son son=new Son(); Son son1=new Son(20,30); } }
程序运行结果如下:
```
num1:0
num1:0
num1:20
num2:10
num1:20,num2:30
```
解析:
1. 首先执行 `Father` 类的无参构造方法,输出 `num1:0`。
2. 接着执行 `Son` 类的无参构造方法,先隐式调用 `super()` 方法调用 `Father` 类的无参构造方法,输出 `num1:0`,然后输出 `num2:10`。
3. 最后执行 `Son` 类的有参构造方法,显式调用 `super(i)` 方法调用 `Father` 类的有参构造方法,输出 `num1:20`,然后输出 `num1:20,num2:30`。
阅读全文