why
将重复代码提取到父类里面
方便代码修改
减少代码量
子类与父类是 is a的关系
how
1:编写父类的属性和方:2:利用extends关键字继承父类,子类只能继承一个父类。
super关键字
访问父类的构造方法:super();super(参数);
访问父类属性:super.name;
访问父类方法:super .print();
只能出现在子类的方法和构造方法里2:调用构造方法时,只能是第一句3:不能访问private成员
规则
子类可以继承父类的一切,但是有三种不行:
1:private成员,私有的不能继承
2:子类与父类不在同包里面,使用默认权限的成员,也就是friendly修饰的
3:构造方法不能继承,它是在创建对象时,系统默认调用的,并且放在显示里面的第一句
访问修饰符:
private,级别最小,只能在本类中使用。
friendly:默认访问修饰:可以跨类访问,但是不能跨包
protected:可以跨包
public:可以跨类,跨包,以及其他的访问,访问最高级
多重继承关系的初始化顺序:父类属性,父类构造方法,子类属性,子类构造方法。
方法重写
1:构造方法不能被继承,所以不能重写
方法名相同,参数列表相同,返回值类型相同
3:访问修饰符必须大于等于父类
方法重载:参数表不同,写在同类中,方法名相同
抽象方法
关键字:abstract
2:抽象方法没有方法体,抽象方法必须在抽象类里面
3:抽象方法必须在子类中被实现,除非子类是抽象方法
作业提取
1:用this调用子类自己的构造方法,同时会调用父类的构造方法,用法:this();其实只要new子类都会默认调用父类的无参构造方法。有参需要用super(参数)手动去调用。手动调用带参的父类构造方法,那么就不会再默认调用父类的无参方法了
2:当父类有有参的构造方法时,子类也必须有带参的构造方法。并且在子类构造方法中必须要调用父类有参的构造方法。
如果父类中有带参数的构造方法,这时继承父类时,需要在子类中建立一个构造方法,然后用super(参数)来继承父类的参数。
final用法
final修饰类,表示该类不能被继承
final修饰方法,表示该方法为最后总版的方法,不能被重写
修饰变量为常量
继承
最新推荐文章于 2024-05-06 21:40:02 发布