分析如下Java代码,如果想在控制台上输出“B类的test()方法”,则在主函数应填入( )

  1. 分析如下Java代码,如果想在控制台上输出“B类的test()方法”,则在主函数应填入( )
    class A {
    public void test() {
    System.out.println("A类的test()方法");
    }
    }
    class B extends A {
    public void test() {
    System.out.println("B类的test()方法");
    }
    public static void main(String args[]) {

    }
    }
    A. A a = new B();
    a.test();
    B. A a = new A();
    a.test();
    C. B b = new A();
    b.test();
    D. new B().test();

A和D
D:没什么可说的,就是B类的Test方法调用
A:多态,如果子类有重载,则会调用等号右边类的方法。也就是B类的Test方法

A和D;
你可以运行一下看看的,或者教你只要看new B()这部分就可以了。

如果回答对你有帮助,请采纳

你这个是继承,也就是说B的内容大于或等于A的,所以调用A来实例化B是不可能的,因为B继承了A,所以A是B的一部分,可以用B来实例化A的。

如果回答对你有帮助,请采纳

A、D。。。。。。。

A 和 D
子类属性 属于 父类属性……

A和D A是由于多态,它会先指向子类的引用。

A,D。继承和覆盖的问题。
A a = new B();
a.test();
a的运行期类型是B,编译期类型是a,运行的时候会从运行期类型里找test方法,找不到找父类
new B().test();
这个简单,实例化一个B类型的实例,然后调用test方法(当然也就是覆盖之后的test了)

A,父类引用指向子类实例,所以执行的是子类方法。
D

public class text1 {
public void a1(){
System.out.println("1111");
}
}
class text2 extends text1{
public void b1(){
System.out.println("222222");
}
}
class text3{
public static void main(String[] args) {
text2 t = new text2();
t.a1();
t.b1();
text1 t1 = new text1();
t1.a1();
t1.b1();
}
}
还是得调用子类, 因为一代更比一代强。

A和D。。。。。。。。。。。。。。。。。

B b=new B()
b.test();
就可以了

public class Text {

public static void main(String[] args) {
    A a=new A();
    A b=new B();
    a.test();
    b.test();
}

}
class A {
public void test() {
System.out.println("A类的test()方法");
}
}
class B extends A {
public void test() {
System.out.println("B类的test()方法");
}
}
这是方法覆盖,破解方法:用那个类的方法,new哪个类,因为是继承 所以父类可以new子类。