Q1:Java的访问控制符有哪些?各有什么访问权限?对照表格写程序验证
package xiushifu2;
public class private2 {
private static int num=2;
public static int num2=1;
protected static int num3=3;
public static void main(String[] args) {
System.out.println(num2);
System.out.println(num);
System.out.println(num3);
}
}
在同一个包,同一个类内private,public,protected都可以被访问
package xiushifu2;
public class private1 {
public static void main(String[] args) {
private2 pri=new private2();
System.out.println(pri.num2);
//System.out.println(pri.num);报错
System.out.println(pri.num3);
pri.num2=44;
pri.num3=55;
}
}
同一个包的不同类中,private不能被访问,但public和protected可以被访问并且可以被修改。
package xiushifu2;
import xiushifu1.public2;
public class private1 {
public static void main(String[] args) {
private2 pri=new private2();
System.out.println(pri.num2);
//System.out.println(pri.num);
System.out.println(pri.num3);
pri.num2=44;
pri.num3=55;
new public2().print1();
//new public2().print2();报错,不能访问
//new public2().print3();报错,不能访问
}
}
在不同的包中,可以用“import”语句调用其他包中的public方法,但是private和protected不能被访问。
另外,当访问控制符被省略的时候,只能访问同一包内的方法。
—————————————————————————————
Q2:子类对于从父类继承的那些属性与方法是可见的?
子类中可见的父类属性和方法如下
父类属性和方法如下
由图可见,子类从父类继承的protected和public类属性和方法可见。
Q3:什么是组合?有什么作用?请举例说明。
在一个类中定义一个需要被复用的其他类,这种类的复用方法称为组合。
组合可以实现类的复用,而且被复用的类与该类是属于包含与被包含的关系。
Q4:什么是重载?有什么作用?请举例说明。
在类中多个重名而不同内容参数的成员方法时,称这些方法为重载方法。
Q5:什么是覆盖?有什么作用?请举例说明。
子类对父类参数相同、返回值相同的同名方法重新进行定义,这种多态被称为覆盖。
重载和覆盖作用类似,他们都属于多态,都是通过创建同名方法来对不同具体情况下的同一功能的实现。