继承:extends
把共有的成员变量和成员方法抽取出来作为父类,其余的子类都继承自该类,子类可以获取父类中的成员
提高代码复用性
java只支持单继承
子类只能获取父类非私有的成员
子父类中成员变量名字一样,调用子类对象获取的是子类的(就近原则),如果要调用父类的就用super关键字
方法重载:方法名相同,参数列表不同
方法重写:在字父类中,方法完全一样,子类重写了父类的方法.子类重写之后调用的就是子类的方法
子类中没有父类的方法调用的父类的,如果有就调用子类的
子类中重写父类方法时,可以使用关键字super();调用父类的方法,这样可以在保存父类功能的同时添加子类特有的功能
注释:@Override 表示这个方法时重写的父类的方法
方法重写时不能重写父类私有的方法,不能在重写时私有子类的方法(权限必须大于父类方法的权限)
子类构造方法!!第一行!!没有调用父类构造会默认调用父类无参构造
肯定会先执行父类的构造,因为要先初始化父类的成员变量
this与super:
this:当前对象
在子类构造方法的第一行调用其他构造方法
调用子类的成员变量与方法
如果子类没有的this也可以调用父类的
super:子类对象的父类引用(不是一个对象)
调用父类的成员方法和变量
在子类的第一行调用父类的构造
继承的优点:
提高代码复用性和可维护性
继承是多态的前提之一
继承的缺点:
类的耦合性增强
子类不想要父类的也得要
内聚: 自己完成某件事的能力
耦合:类与类的关系
开发的原则:高内聚低耦合
匿名对象:
没有变量引用的对象
new 类名();
匿名对象的应用场景,当方法只调用一次的时候可以使用匿名对象
匿名对象可以调用成员变量并赋值,但是赋值没有意义;
抽象:
那些关键字不能与abstract混用
final private
static (可以直接使用类名调用,被抽象的方法没有方法体调用了也没什么用)
抽象类中有构造方法(需要初始化成员变量)
抽象类可以没有抽象方法 但是没意义
抽象类不能实例化,不能创建对象
被abstract修饰的方法没有方法体
抽象的意义是可以规范子类
|
|