java继承练习题

⦁    选择题

1.    以下关于继承条件下构造方法执行过程的代码的执行结果是(  A  )。(选择一项)
    class Person {    
    public Person() {
        System.out.println("execute Person()");
    }
}
class Student extends Person {    
    public Student() {        
        System.out.println("execute Student() ");
    }    
}
class PostGraduate extends Student {    
    public PostGraduate() {    
        System.out.println("execute PostGraduate()");
    }    
}
public class TestInherit {
    public static void main(String[] args) {
        new PostGraduate();        
    }
}
        
    A.    execute Person()
execute Student() 
execute PostGraduate()
    B.    execute PostGraduate()
    C.    execute PostGraduate()
execute Student() 
execute Person()
    D.    没有结果输出

2.    以下关于this和super关键字的说法错误的是(    )。(选择二项)
        
    A.    this关键字指向当前对象自身,super关键字指向当前对象的直接父类
    B.    在main方法中可以存在this或super关键字,但不能同时存在。
    C.    this和super关键字都可以访问成员属性,成员方法和构造方法
    D.    在一个类的构造方法中可以同时使用this和super来调用其他构造方法


3.    给出下面的代码段,在代码说明//assignment x=a,y=b处写入如下(    )个代码是正确的。(选择一项)
    public class Base {
    int w, x, y, z;
    public Base(int a, int b) {
        x = a;
        y = b;
    }
    public Base(int a, int b, int c, int d) {
        // assignment x=a,y=b
        w = d;
        z = c;
    }
}
        
    A    Base(a,b);
    B.    x=a,y=b;
    C.    this(a),this(b);
    D.    this(a,b)

4.    以下Java程序编译运行后的输出结果是(    )。(选择一项)
    class HelloA {
    public HelloA( ) {
        System.out.println("HelloA");
    }
    {   System.out.println("I'm A class");
    }
    static {
        System.out.println("static A");
    }
}  
public class HelloB extends HelloA {
    public HelloB( ) {
        System.out.println("HelloB");
    }
    {   System.out.println("I'm B class");
    }
    static {
        System.out.println("static B");
    }
    public static void main(String[] args) {
        new HelloB( );
    }
}
        
    A    static A
static B
I'm A class
HelloA
I'm B class
HelloB    C.    static A
I'm A class
HelloA
static B
I'm B class
HelloB
    B.    static A
static B
I'm A class
I'm B class
HelloA
HelloB    D    static A
static B
HelloA
HelloB 
I'm A class
I'm B class

5.    下列选项中关于Java中super关键字的说法正确的是(     )。(选择二项)
        
    A    super关键字是在子类对象内部指代其父类对象的引用
    B.    super关键字不仅可以指代子类的直接父类,还可以指代父类的父类
    C.    子类通过super关键字只能调用父类的方法,而不能调用父类的属性
    D.    子类通过super关键字可以调用父类的构造方法

⦁    判断题
⦁    如果定义一个类时没有使用extends,则它的父类是java.lang.Object。(    )
⦁    对子类实例化对象需要调用超类的构造函数进行初始化工作,完成对子类中的超类实例变量的初始化,则子类可以继承超类的构造函数。(    )
⦁    在Java中任何一个子类的构造方法都必须调用其父类的构造方法(包括隐式调用),并且调用父类的构造方法的语句必须是子类构造方法的第一条语句。(    )
⦁    Java中的类不允许多重继承,一个类只能有有一个直接父类。
⦁    Object类有一个public方法是toString( ),一个对象通过调用该方法可以获得该对象的字符串表示。(    )
⦁    父类Person中定义了一个private void show()的方法,那么子类要重写这个方法时,方法的访问修

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一道 Java 继承练习题: 假设有一个父类 `Animal` 和两个子类 `Dog` 和 `Cat`。`Animal` 类包含一个 `name` 成员变量和一个 `eat` 方法,`Dog` 和 `Cat` 类都继承了 `Animal` 类,并且都有一个 `sound` 方法。现在请你完成以下练习: 1. 在 `Animal` 类中,添加一个 `sleep` 方法,并在 `Dog` 和 `Cat` 类中覆盖(重写)该方法,使得 `Dog` 和 `Cat` 的 `sleep` 方法输出不同的内容。 2. 在 `Dog` 和 `Cat` 类中,实现各自的 `sound` 方法,使得 `Dog` 的 `sound` 方法输出 `"汪汪"`,`Cat` 的 `sound` 方法输出 `"喵喵"`。 3. 编写一个名为 `Main` 的测试类,并在其中创建一个 `Dog` 对象和一个 `Cat` 对象,分别调用它们的 `eat`、`sleep` 和 `sound` 方法。 你可以参考以下代码: ```java public class Animal { private String name; public Animal(String name) { this.name = name; } public void eat() { System.out.println(name + " is eating"); } public void sleep() { System.out.println(name + " is sleeping"); } } public class Dog extends Animal { public Dog(String name) { super(name); } public void sleep() { System.out.println(getName() + " is sleeping soundly"); } public void sound() { System.out.println("汪汪"); } } public class Cat extends Animal { public Cat(String name) { super(name); } public void sleep() { System.out.println(getName() + " is sleeping quietly"); } public void sound() { System.out.println("喵喵"); } } public class Main { public static void main(String[] args) { Animal dog = new Dog("旺财"); Animal cat = new Cat("小花"); dog.eat(); dog.sleep(); ((Dog) dog).sound(); cat.eat(); cat.sleep(); ((Cat) cat).sound(); } } ``` 希望这个练习题能够帮助你理解 Java 继承的相关知识。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值