2020-10-19

编程题
在这里插入图片描述
在这里插入图片描述

问答题:
1.Java的访问控制修饰符有哪些?各有什么访问权限?

public,private,protected,默认。
public:修饰类方法变量,对应的访问权限是:全部包的任何类

protected:用protected修饰的类、方法、变量,包内的任何类以及包外继承了该类的子类才能进行访问,重点是:包外继承了该类的子类才可以进行访问,意思市protected修饰的类中的方法和成员变量,只能被子类访问,不论这个子类和父类是否在同一个包中

默认: 如果类、方法、变量没有使用任何访问修饰符,只有包内的任何类可以进行访问

private:用private修饰的类、方法、变量、只有本类中可以访问,包内包外的任何类都不能进行访问的

2.子类对于从父类继承的哪些属性与方法是可见的?
凡是修饰符为public或protected的父类属性成员及方法能被子类所访问;private的属性成员或方法则不能被直接访问。

3.什么是组合?有什么作用?请举例说明。
组合是通过对象内部的属性引用来实现。
例如:fp就将A对象和FighterPlane对象组合起来:A对象和FighterPlane对象虽然在内存当中是两个对象,但是由于A中拥有FighterPlane对象的引用,就可以把A对象看成是由FighterPlane对象组合而成的

public class FighterPlane {
	String name;
	int missileNum;
	void fire() {
		if(missileNum > 0) {
			System.out.println("now fire a missile!");
			missileNum -= 1;
		}
		else {
			System.out.println("No missile left!");
			
		}
	}
}

public class RunPlane {
		public static void main(String args[]) {
			FighterPlane fp = new FighterPlane();
			fp.name = "苏35";
			fp.missileNum = 6;
			fp.fire();
		}
}
 class A 
 {
     FighterPlane fp;
     public A(FighterPlane fpp){
        this.fp = fpp; //A对象中拥有了FighterPlane对象的引用
     }
     public void invoke(){
             System.out.println(fp.name); 
     }
 }

4.什么是重载?有什么作用?请举例说明。
在类中定义了多个同名而不同内容参数的成员方法时,称这些方法是重载(overloading)方法。
方法重名表明他们的最终功能和目的相同,但由于在完成同一功能时可能遇到不同的具体情况,所以需要定义含不同具体内容的方法。

class Parent{
    public int getscore(){
    return 3;
    }
    public int getscore(int i){
    return i;
    }
    }

5.什么是覆盖?有什么作用?请举例说明。
子类对父类参数相同,返回类型相同的同名方法重新进行定义,这种多态被称为覆盖(overriding).方法覆盖与引用替换相结合,可使抽象类的声明在保证消息发送统一性的前提下,具有消息结果执行上的相异性特点。

public class Main {
	public static void main(String[] args) {
		new Father().print();
		new Son().print();
	}
}
 
class Father{
	 public void print(){
		 System.out.println("father");
	 }
}
class Son extends Father{
	public void print() {
		System.out.println("SON");
	}		
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值