一、JAVA类
- 当子类继承父类时,如果在子类中调用父类的构造函数实现父类的初始化呢?
- 当子类重写了父类的方法,如果在子类中调用原来父类的方法呢?
- 如何让“JAVA类无法被继承“、"JAVA类中的方法无法被修改"、“定义的变量无法被修改”。
- 当有的类或类的变量方法本层不需要定义,但必须强制其子类定义呢?有什么注意事项呢(两点)?
- 何为上转型对象?
一、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. 何为上转型对象?
答:即将子类的对象重新赋值给父类,此时即子类重新变为改写后的父类,失去了子类新增的变量与值