一、继承的特点
a:java中只支持单继承,手动写继承关系,默认继承Object类
b:支持多层继承,A extends B ,B extends C
c:多个类可以继承一个类,A extends B ,C extends B
d:父类,子类是相对的,A extends B ,B extends C(B是A的父类,B是C的子类)
二、继承中成员变量的特点
a:私有成员变量不能被子类继承
b:变量使用就近原则,同一个作用域中有改局部变量就使用,没有看成员变量,再没有看父类有无此成员变量
c:如果父类成员变量(super.name),本类成员变量(this.name),当前局部变量(name)名字相同,分别调
三、继承中方法的特点
a:私有方法不能继承
b:抽象方法必须重写
c:构造方法不继承(创建对象时,最先执行的都是父类里面被调的方法)
四、this和super
a:this指本类引用(本类中没有的可以调到父类中能被继承的变量或方法),super指父类引用(只能调父类的变量和方法)
b:当在构造方法中使用的时候,一个构造方法只能用其中一个,并只能放在第一行
五、方法重写
a:当父类某一个方法不能满足子类时,子类重写该方法(功能加强)
b:方法重写,除了方法体以外,权限修饰符(子类必须比父类权限大),其他全部一样(返回值,参数列表,其他修饰符)
c:@Override 重写方法注解
六、方法重写与方法重载区别
a:方法重写:子父类中,与返回值有关,参数列表一样 (@Override)
b:方法重载:一个类中,与返回值无关,参数列表不一样 (@Overload)
七、继承优缺点
优点:a、提高代码复用性 b、提高代码的可维护性
缺点:类与类之间的关系增强了(耦合性),父类修改子类跟着修改
开发原则:高内聚(自身完成某一件事的能力),低耦合(类之间的关系)
八、匿名对象
没有名字的对象: new 类名();
适用于只调一次方法和传参数
九、final
一个关键字,表最终态
a:final修饰的类不能被继承(断子绝孙)
b:final修饰的方法不能被重写
c:final修饰的变量不能被修改(变为常量,名字全大写)
十、抽象类(被关键字abstract修饰的类) 抽象方法(被关键字abstract修饰的方法)
特点:
a:抽象方法只能在抽象类中,所以继承了抽象类的类,
要么重写抽象类里面的所有抽象方法,要么自身变为抽象类(无实际意义)
b:抽象类和抽象方法必须被abstract修饰
c:抽象类不能创建对象(实例化)
d:抽象类可以没有抽象方法
抽象类成员特点
普通类有的它都有,比普通类多了一个抽象方法
十一、abstract关键字的细节
a:不能修饰变量
b:不能与final,static,private关键字共存
A:final修饰的类不能被继承,抽象类只有被继承才有意义
final修饰的方法不能被重写,继承抽象类后,里面的抽象方法必须被重写(冲突)
B:static修饰的方法能被类名点调用,抽象方法没有方法体,调用无意义(冲突)
C:private修饰的不让子类访问,abstract修饰的是为了让子类看到并重写(冲突)
|
|