extends 继承
什么是继承?
继承就是把一些类的相同的属性和方法提取出来,然后放到一个父类里面,让其他类继承这个父类的做法就是继承。
继承有啥好处捏?
1:提高代码的复用性
2:让类与类之间产生生关系,是多态的前提
继承有啥特点捏?
1:子类只能继承父类中非私有的成员变量和成员方法
2:只支持类的单继承,但是支持多层继承。
啥时候使用继承捏?
当A is a B也就是说 A是一个B A属于B 那么就定义继承。不能想使用另一个类的某个功能而随便的使用继承。
继承中的成员变量:
this 关键字(本质是对象)
当局部变量和成员变量和父类和爷类有同名变量的时候,如果我们在方法内需要用子类的变量,那么就加个this关键字即可,而且当子类中没有这个变量,那么他还会继续向父类中继续寻找这个变量。
super 关键字(本质是父类内存空间的标识)
当我们需要使用父类中这个变量的时候,只需要直接在变量中加一个super即可,当我们需要爷类中的变量的时候,只能创建一个公共的方法提供访问。
this和super不能同时出现。
构造方法:不可以被继承 原因是构造方法名字必须和类名相同。
可以在子类任何方法调用父类构造方法 super();
不论是this调用本类构造方法或者super调用父类构造方法时候,必须放在第一行。
成员方法的重写:
子父类继承关系中:
重写方法时:
1:如果增加父类方法中的功能时候,子类中重写父类中方法时可以调用父类原有功能,这样的话就会在添加一些新功能并且保留了父类原有的功能。
2:如果父类方法过时了,子类完全重写功能。
3:子类的访问权限必须大于等于父类的权限。
4:子类不能比父类抛出比父类的更大的异常。
代码块:
代码块有啥用捏?
好像没啥用。。开发老师说都不用。。
执行顺序:
父类优先于子类
静态优先于非静态
同一类中构造代码块优先于构造方法
静态代码块只执行一次
final 关键字
最终的
修饰类 、方法和成员变量
修饰的类不能被继承
修饰的方法不能被重写
修饰的成员变量是个常量
|
|