目录
选择题
1,已知如下类定义:
class Base {
public Base (){
//...无参构造方法:名称和类名称相同,没有返回值,在创建对象时由编译器自动调用,在对象的整个生命周期里面只调用一次。
}
public Base ( int m ){
//...有参构造方法
}
public void fun( int n ){
//...普通成员方法
}
}
public class Child extends Base{
// member methods
}
如下哪句可以正确地加入子类中?A private void fun( int n ){ //...}
B void fun ( int n ){ //... }
C protected void fun ( int n ) { //... }
D public void fun ( int n ) { //... }知识点:构造方法,方法重写,方法重载,继承
(1)构造方法:
要求1:名称和类名相同,没有返回值;
要求2:当类中没有提供构造方法的定义时,java编译器在编译之后会生成默认的午餐构造,一旦类中提供了构造方法,则编译器不在生成默认的无参构造;
(2)方法重写及方法重载
第一个:方法重载
重载在同一类中,声明多个同名方法,通过参数列表来区分不同的方法,与参数列表的数量,类型,顺序有关,与修饰符和返回值类型及抛出的异常类型无关。
作用:在一个类中为一种行为提供多种实现方式并提高可读性。
第二个:方法重写
重写的前提是发生在具有继承关系的两个类之间,方法重写要求
a:方法名相同,参数类型相同
b:重写方法返回类型小于等于父类方法返回类型,
c:重写方法抛出异常小于等于父类方法抛出异常,
d:重写方法访权限大于等于父类方法访问权限作用:父类方法无法满足子类的要求,子类通过方法重写满足需求。
(3)继承
特点:共性抽取,代码复用
要求:实现继承需要满足is a原则,一旦使用extends继承一个父类,则父类的所有成员变量以及方法都会被继承到子类中。
注意点:
a:子类继承父类之后,实例化子类对象之前会先调用父类构造方法实例化父类对象,但当父类没有无参构造时,必须在子类的构造方法首行显示调用super参数,明确指定调用父类的构造方法。
b:子类继承父类属性,方法,公开的或者不加任何修饰的可以直接继承,父类的私有属性需要通过get函数来获取;
c:在子类中调用父类的属性和方法,可以直接使用super关键字 super.方法名称(参数)
(4)super
语法:super(参