一 面向对象 inheritence , encapsulation , polimorphim
二 类的构造函数可以重载,一个构造函数内部可以调用另一个构造函数,用this(parameter) ,但是必须把this语句放在第一行
三 子类构造函数执行前,先要执行父类的构造函数;如果子类没有在构造函数中显式调用父类的构造函数super(parameter),而且父类也没有默认构造函数的话,代码会出现编译错误 ; 同时super语句需要放在子类构造函数的第一行
四 函数的重载是指一个类里面,有多个方法,它们名称相同,但参数个数不同,或参数类型不同
五 继承的关系: 父类有的,子类可以有; 父类没有的,子类可以增加; 父类有的,子类可以改变; 构造函数不能继承
六 方法的重写, 涉及子类重写父类的方法; 父类引用指向子类对象,是多态的表现,是动态绑定的结果dynamic binding,其中动用的方法必须是在父类中已经存在的,否则会报编译错误
七 父类可以向下进行转换,但转换的类型是父类引用指向的子类的类型,如果强制转换为其他子类类型,在运行时会报错,提示强制转换失败
八 子类向上转换为父类,可以不用进行强制转换符,会自动转换
九 把父类强制转换为子类的情况: 当要使用的方法是子类特有的方法时
十 父类的静态方法,不能被子类的相同的方法OVERWIRTE ,只能被隐藏;
十一 当使用final修饰一个类时,此类不能被继承; 当final修饰一个方法时,此方法不能被重写; 当final修饰一个属性时,此属性不能被修改
十二 当使用final修饰一个成员属性时候,注意以下情况:
(1) class aa {
final int aaa
}
--------------------编译错误
(2) class aa {
final int aaa
aa(){
aaa= 0 ;
}
}
--------------------OK
(3) class aa {
final int aaa
aa(){
aaa= 0 ;
}
aa(int aa){
}
}
--------------------编译错误
(4) class aa {
final int aaa =0
aa(){
aaa= 0 ;
}
}
--------------------编译错误