1. Java的访问控制修饰符有哪些?各有什么访问权限?
- 演示public类的protected属性访问
- 同一个包
- 不同包
- 不同包继承关系
- 同一个包
- 演示public类的static属性修饰的访问控制
- 演示public类的private 属性的单例设计模式
2. 子类对于从父类继承的哪些属性与方法是可见的?
子类继承了父类的所有属性和方法, 但只有public、protected的属性和方法在子类是可见的。
3. 什么是组合?有什么作用?请举例说明。
- 使用多个已有的对象组合为一个功能更加复杂强大的新对象,称为组合
- 作用:整体类可以对局部类进行包装,封装局部类的接口,提供新的接口
class Soap{
private String s;
public Soap() {
// TODO Auto-generated constructor stub
System.out.println("Soap()");
s="Constructor";
}
public String toString(){
return s;
}
}
public class Bath {
private String s1="happy",s2="happy",s3,s4;
private Soap castille;
private int i;
private float toy;
public Bath(){
System.out.println("Inside Bath()");
s3="Joy";
toy=3.14f;
castille=new Soap();
}
{i=47;}
public String toString(){
if(s4==null)
s4="Joy";
return
"s1 = "+s1+"\n"+
"s2 = "+s2+"\n"+
"s3 = "+s3+"\n"+
"s4 = "+s4+"\n"+
"i = "+i+"\n"+
"toy = "+toy+"\n"+
"castille = "+castille+"\n";
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Bath x= new Bath();
System.out.println(x);
}
}
/* output
Inside Bath()
Soap()
s1 = happy
s2 = happy
s3 = Joy
s4 = Joy
i = 47
toy = 3.14
castille = Constructor
*/
4. 什么是重载?有什么作用?请举例说明。
- 在类中定义了多个同名而不同内容参数的成员方法时,称这些方法是重载方法。
- 作用:不用为了对不同的参数类型或参数个数,而写多个函数,即一个内容,可以实现多个功能
class Parent{
public int getScore(){
return 3;
}
public int getScore(int i){
return i;
}
}
5. 什么是覆盖?有什么作用?请举例说明。
- 子类对父类参数相同、返回类型相同的同名方法重新进行定义,这种多态被称为覆盖。
- 作用:在子类中重写父类的功能方法,达到不修改父类就能改动父类功能的目的。
class Parent {
public int getScore()
{ return 3; }
public String getCountryName()
{ return “China”; }
}
class Son extends Parent {
public int getScore(){
return 4;
}
}
public class RunSon{
public static void main(String args[]){
Son s = new Son();
System.out.println(s.getScore());
System.out.println(s.getCountryName());
}
}