1. Java的访问控制修饰符有哪些?各有什么访问权限?
Java的访问控制修饰符有:
- public
- private
- protected
private:用 private 修饰的类成员,只能被该类自身的方法访问和修改,而不能被任何其他类(包括该类的子类)访问和引用。
public:当一个类被声明为 public 时,它就具有了被其他包中的类访问的可能性,只要包中的其他类在程序中使用 import 语句引入 public 类,就可以访问和引用这个类。
protected:用 protected 修饰的类成员可以被三种类所访问:该类自身、与它在同一个包中的其他类以及在其他包中的该类的子类。使用 protected 修饰符的主要作用是允许其他包中它的子类来访问父类的特定属性和方法。
2. 子类对于从父类继承的哪些属性与方法是可见的?
public、protected的属性和方法在子类是可见的。
子类在继承父类的时候,当子类和父类不在同一个包当中时,父类修饰符必为public;在父类能被访问的前提下,修饰符为public或是protected的父类属性成员或是方法都能被子类所访问; private的属性成员或是方法不能被访问。
3. 什么是组合?有什么作用?请举例说明。
组合:把一个类当成另一个类的组合成分,从而允许新类直接复用该类的public方法。
作用:不破坏封装,整体类与局部类之间松耦合,彼此相对独立且具有更好的可扩展性。
class A{…}
class B{A a
…
}
4. 什么是重载?有什么作用?请构造各种重载示例。
重载:在同一个类中,允许存在一个以上的同名方法, 只要它们的参数个数或者参数类型不同即可。
作用:对功能进行复用或扩充(补充新的参数)
static int add(int num1,int num2) {
return num1 + num2;
}
static int add(int num1,int num2,int num3) {
return num1 +num2 + num3;
}
5. 什么是覆写?有什么作用?覆写父类方法的条件有哪些?
覆写:子类对父类参数相同,返回类型相同的同名方法重新进行定义。
作用:对功能进行复用和扩充
条件:
- 子类的访问修饰符权限应等于或大于父类,不能变小
- 子类的返回类型能够向上转型成为父类的返回类型
- 异常也要能向上转型为父类的异常
- 方法名、参数类型及个数必须严格一致
- 只能针对非静态、非final、非构造方法