- Java的访问控制修饰符有哪些?各有什么访问权限?请对照第7页ppt的表格分别写程序验证。
Java的访问控制符有三种,分别是private,public和protected,还有一种不带任何修饰符的default。
private:称之为“私有的”。被其修饰的类、属性以及方法只能被该类的对象访问,其子类不能访问。
default:即不加任何访问修饰符,通常称为“默认访问模式“。该模式下,只允许在同一个包中进行访问。
protect: 介于public 和 private 之间的一种访问修饰符,一般称之为“保护形”。被其修饰的类、属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。
public:称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问。 - 子类对于从父类继承的哪些属性与方法是可见的?请分别写程序进行验证。
子类从父类继承了所有的属性和方法,但是只有父类的public和protected是子类可见的。 - 什么是组合?有什么作用?请举例说明。
组合就是把一个类当成另一个类的组成部分,从而允许新的类直接使用该类的public方法。
作用是不会破坏封装性,整体类和局部类的松耦合,彼此具有更好的可拓展性并且相互独立。
eg:class A{…};
class B{A a…}; - 什么是重载?有什么作用?请构造各种重载示例。
重载是被定义的具有相似功能的相同名字的不同函数。定义重载方法的时候,要求:1.方法的名字必须相同,作用域必须相同2.参数必须不同(数量、类型、顺序不同)
作用:调用函数的时候,能通过传入的不同参数自动调用对应的函数,而避免了因为参数类型不同而写不同的函数。
eg:void test(){
System.out.println("1");
}
void test(int num){
System.out.println("num: "+num);
}
- 什么是覆写?有什么作用?覆写父类方法的条件有哪些?请举例说明。
覆写是当子类定义了与父类中完全一样的方法时(参数名称、参数类型及个数、返回值类型)的操作。
作用:父类中定义的方法名称是其他程序认可的,但是子类使用时发现,原有方法不能满足现在的操作要求,但可以保留原方法名称。
eg:class A{
public void print(){
System.out.println("********A*********");
}
}
class B extends A{
void print(){
System.out.println("********B*********");
}
}