刚刚在单元测试中有这个。所以:
abstract class A {...}
class B extends A {...}
A a = new B();
非常怀疑它是否可行,但我现在完全糊涂了。课程内容无关紧要。
刚刚在单元测试中有这个。所以:
abstract class A {...}
class B extends A {...}
A a = new B();
非常怀疑它是否可行,但我现在完全糊涂了。课程内容无关紧要。
polymorphism
是的,这个概念在 java中被称为。父类可以包含子类的引用。和 parent 可以是interface
或abstruct class
。甚至you need not to cast
。例如 。
a animal can be horse or cat , here animal is an interface or abstract class.
我推荐(SCJP Sun Certified Programmer -kathy sierra)这本书有很多与 Java 语言相关的概念。
是的,这在java中有效
abstract class A {...}
class B extends A {...}
A a = new B();
是的,这是一个有效的 java 赋值语句。
A a = (A) new B();
在java中,可以从父类中引用子对象。
这是有效的。根据 Java 的基本规则“超类引用 (A a) 可以引用子类对象 (b=new B())”。
它在java中有效。这称为隐式向上转换(JVM 将子类型转换为超类型对象),其中超类型的引用可以引用子类型,但使用超类型引用,您只能访问在超类型中声明/定义的那些变量和方法.
接口 - 无论您是否声明它,每个方法始终是公共的和抽象的。您不能使用以下修饰符声明接口方法。无论我们是否声明,接口中存在的每个变量始终是 public static 和 final 的。您不能使用以下修饰符声明接口变量:private、protected、transient 和 volatile。抽象类中存在的变量不必是公共的、静态的和最终的。对抽象类变量修饰符没有限制。对于抽象类变量,在声明时不需要执行初始化。抽象类可以声明实例和静态块。在接口内部我们不能声明实例和静态块,否则我们会得到编译时错误。接口不能声明构造函数。