【JAVA复习】第五章 类

一、JAVA类

  1. 当子类继承父类时,如果在子类中调用父类的构造函数实现父类的初始化呢?
  2. 当子类重写了父类的方法,如果在子类中调用原来父类的方法呢?
  3. 如何让“JAVA类无法被继承“、"JAVA类中的方法无法被修改"、“定义的变量无法被修改”。
  4. 当有的类或类的变量方法本层不需要定义,但必须强制其子类定义呢?有什么注意事项呢(两点)?
  5. 何为上转型对象?

一、JAVA类

1. 当子类继承父类时,如果在子类中调用父类的构造函数实现父类的初始化呢?

  答:很简单,在子类中调用 super() 函数,即可完成对父类的构造。

    举个例子:AA父类,其中需要参数对变量a初始化。BB为AA的子类,BB初始化时一定要初始化其父类AA,此时调用super函数即可。

public class BB extends AA{
    BB(int a){
        //
        // 通过 super() 可以调用 AA类的构造函数完成初始化
        //
        super(a);
    }
    
    static public void main(String args[]){
        BB x = new BB(2);
    }
}

2. 当子类重写了父类的方法,如果在子类中调用原来父类的方法呢?

  答:很简单,利用super关键字即可。

public class BB extends AA{
    BB(int a){
        super(a);
        //
        // 我们使用 super 关键字,就可以来调用父类的Call而不是子类的
        //
        super.Call();
    }
    
    //
    // Call 方法已经被重写
    //
    void Call(){
        System.out.println("我是BB");
    }
    static public void main(String args[]){
        BB x = new BB(2);
        System.out.println(x.a);
    }
}

3. 如何让“JAVA类无法被继承“、"JAVA类中的方法无法被修改"、“定义的变量无法被修改”?

  答:使用 final 关键词依次修饰 类、类的方法、变量。 让其变为类似"常量"的东西。

4. 当有的类或类的变量方法本层不需要定义,但必须强制其子类定义呢?

  答:使用 abstract 关键词即可。注意事项:abstract方法必须在abstract类中定义;abstract类无法使用 new 生成。

5. 何为上转型对象?

  答:即将子类的对象重新赋值给父类,此时即子类重新变为改写后的父类,失去了子类新增的变量与值

  

猜你喜欢

转载自www.cnblogs.com/onetrainee/p/12018224.html