首页 > 试题广场 >

A派生出子类B,B派生出子类C,并且在java源代码中有如下

[单选题]
A派生出子类B,B派生出子类C,并且在java源代码中有如下声明:
1.A a0=new A();
2.A a1=new B();
3.A a2=new C();
以下哪个说法是正确的?
  • 第1行,第2行和第3行的声明都是正确的
  • 第1,2,3行都能通过编译,但第2,3行运行时出错
  • 第1,2行能通过编译,但第3行编译出错
  • 只有第1行能通过编译
总结:向上转型具有传递性
发表于 2016-07-16 17:09:18 回复(0)
多态的特性,类型向上转型!
发表于 2015-11-21 16:45:05 回复(0)
明显的多态么A
发表于 2015-10-28 16:38:41 回复(0)
向上转型具有传递性,第二三行是多态的形式。
发表于 2019-09-12 15:12:59 回复(0)
这不就是多态么?  父类的引用指向子类对象。
发表于 2018-10-18 09:08:36 回复(0)
继承具有传递性,B继承A,C继承于B,那么C也继承于A,向上造型成功要满足两个条件:
1.变量所指向的对象本身就是要转型成的类的本身
2.变量所指向的对象继承了或实现了该类,
在这里,C和B都继承了A,所以三个都造型成功,即声明正确
发表于 2018-07-26 09:24:03 回复(0)
父类引用指向子类对象,同时向上转型又具体传递性
发表于 2018-01-15 19:58:46 回复(0)
 向上转型是无条件的,文中就是一顿向上转
发表于 2016-10-02 20:17:06 回复(0)
A 向上转型
发表于 2015-10-20 19:53:05 回复(0)
一句话 向上转型是无条件的
发表于 2016-08-03 00:07:50 回复(5)
A
public class A {
	public A(){
		System.out.println("A");
	}
	public static void main(String[] args) {
		A a0=new A();
		A a1=new B();
		A a2=new C();
	}
}
class B extends A{
	public B(){
		super();
		System.out.println("B");
	}
}
class C extends B{
	public C(){
		super();
		System.out.println("C");
	}
}

发表于 2015-10-19 18:32:50 回复(1)
继承具有多态性,可以是本类的引用指向本类对象,也可以是本类的引用指向子类对象
发表于 2015-10-21 12:27:29 回复(0)
类的继承具有传递性,子类可以通过向上转型的方式无条件地赋值给父类对象;父类通过向下转型赋值给子类时,必须通过强制类型转换。
发表于 2017-11-13 16:17:47 回复(0)
父类指向其子类或者间接子类不需要转型,但是子类指向父类需要强制转型。其中父类指向子类的实例只能调用父类中声明的各项函数啥的,无法调用子类中的哟。
发表于 2017-05-03 20:40:59 回复(0)
第三条要想到所有的类都是object的子类
发表于 2017-02-08 14:58:23 回复(1)
简单理解其实就是大小筐的意思,A的筐最大,能容纳B,B能容纳C
发表于 2025-06-04 17:07:22 回复(0)
1、父类引用指向子类对象,而子类引用不能指向父类对象。

2、把子类对象直接赋给父类引用叫upcasting向上转型,向上转型不用强制转换。

3、把指向子类对象的父类引用赋给子类引用叫向下转型(downcasting),要强制转换。

发表于 2019-08-21 16:53:30 回复(0)
这个怎么说
发表于 2019-06-22 16:41:41 回复(0)
子类对象即是父类对象
发表于 2019-06-21 16:03:14 回复(0)

OOP-继承-向上转型

发表于 2019-05-20 15:25:57 回复(0)