QUESTION:
1.java的访问控制修饰有哪些,有什么访问权限:public
protected
private
访问权限 类 包 子类 其他包 public: √ √ √ √ protect: √ √ √ × default: √ √ × × private: √ × × ×
package B;
public class FighterPlane {
protected String name;
protected int missileNum = 0;
public void fire() {
if(missileNum > 0) {
System.out.println("Now fire a missile!");
missileNum -= 1;
}
else {
System.out.println("No missile left!");
}
}
}
package A;
import B.*;
public class RunPlane extends FighterPlane{
private void init() {
name = "歼-20";
missileNum = 6;
}
public static void main(String args[]) {
RunPlane fp = new RunPlane();
fp.init();
fp.fire();
}
}
2.子类对于从父类继承的哪些属性与方法是可见的:
子类继承了父类的所有属性和方法, 但只有public、protected的属性和方法在子类是可见的,private仍不可见。
public class Plane {
protected String name;
public void setName(String _name) {
name=_name;
}
public String getName() {
return name;
}
}
public class FighterPlane extends Plane{
private int missileNum;
public void setNum(int missileNum1) {
missileNum=missileNum1;
}
public void fire() {
if(missileNum>0) {
if(missileNum>0) {
System.out.println("Now fire a missile!");
missileNum-=1;
}else {
System.out.println("No missile left!");
}
}
}
}
public class Run {
public static void main(String[] args) {
FighterPlane p=new FighterPlane();
p.name="su35";
System.out.println(p.getName());
p.setName("f35");
System.out.println(p.getName());
p.setNum(6);
p.fire();
}
}
3.什么是组合:
组合:一个类的对象引用是另一个类的属性就是一个组合现象,可以便于实现代码的复用。比如: 假设有一个类A,另一个类的对象引用是它的属性,当引用所指向的对象损坏时,我们可以将引用指向其他对象。
4.什么是重载:重载:在类中定义了多个同名而不同内容,不同参数的成员方法时,称这些方法是重载方法。
作用:可以扩充程序的消息处理接口方法。
class ChildAge{
public int getAge(){
return 3;
}
public int getAge(int i){
return i;
}
}
5.什么是覆写,覆写父类的条件:
多态:子类对父类参数相同、返回值类型相同的同名方法重新定义。
如果子类定义的方法与父类名称相同,但参数名称不同,则不是覆写,而是重载。



