一、请问什么是方法重载?
答:重载方法必须满足的条件是:在同一个类中,方法名相同,参数签名(方法的参数类型、个数、顺序)不同,方法的返回类型可以不相同,方法的修饰符可以不相同。
二、请问什么是方法覆盖?
答:方法覆盖是子类和父类的方法同名同参同返回值。
三、请问方法重载和方法覆盖的异同是什么?
答:相同点:都要求方法名相同,都可以用于抽象方法和非抽象方法之间。
不同点:①方法覆盖要求同参数签名,方法重载要求参数签名不同。
②方法覆盖要求返回类型相同,方法重载不限制。
③方法覆盖只能用于子类覆盖父类的方法,方法重载用于同一个类中的所有方法。
④方法覆盖对方法的访问权限和抛出的异常有特殊的要求,方法重载无限制。
⑤父类的一个方法只能被子类覆盖一次,而一个方法在所在的类中可以被重载多次。
四、请问在什么情况下使用super关键字?
答:①在类的构造方法中,通过super语句调用这个类的父类的构造方法;
②在子类中访问父类的被屏蔽的方法和属性?
五、请问什么是被屏蔽的方法和属性?
答:①在一个方法内,当局部变量和类的成员变量同名,或者局部变量和父类的成员变量同名时,按照变量的作用规则,只要局部变量在方法内可见。
②当子类的某个方法覆盖了父类的一个方法时,在子类的范围内,父类的方法不可见。
③当子类中定义了和父类同名的成员变量时,在子类的范围内,父类的成员变量不可见。
六、请问什么是向下转型和向上转型?
答:把引用变量转换为子类类型,称为向下转型;把引用类型转换为父类类型,称为向上转型。
七、请问什么是动态绑定和静态绑定?
答:实例方法与引用变量实际引用的对象的方法绑定,属于动态绑定;
静态方法与引用变量所声明的类型的方法绑定,属于静态绑定;
成员变量(包括静态变量和实例变量)与引用变量所声明的类型的成员变量绑定,属于静态绑定。
八、请问继承的最大弱点是什么?
答:打破封装,子类能够访问父类的实现细节,子类与父类之间紧密耦合,子类缺乏独立性,从而影响了子类的可维护性。