简介:
子类可以继承父类的非私有成员,并且可以使用。通过一个关键字extends来让类与类之间产生继承关系
思想:
将所有子类的共性功能,向上抽取到父类当中,为了实现代码的复用性和维护性。
1.好处:
提高了代码的复用性和维护性。
2.弊端:
增加了耦合性,让类与类之间产生了关系。
3.软件设计的原则是高内聚,低耦合:
高内聚:一个类单独完成某个功能的能力
低耦合:一个类要完成某个功能,得去依赖某些类
注意事项:
1.java中只支持单继承,但是继承多层继承。
Object是所有类的顶层父类,所有类都是直接间接的继承自它。
2.父类私有成员(成员变量,成员方法),子类不能继承。
3.构造方法不参与继承。
4.不要为了部分吗功能去继承(增加耦合性)。
super与this
super:
他是父类空间的一个标识,你可以理解为父类的一个引用,我们可以用super来访问父类的数据(成员,构造方法)。
this:
代表本类的一个引用,你可以理解为本类的一个对象,哪个对象调用这个方法,方法中的this就代表谁。
在每个类的构造方法的第一行,都会默认有一条super()调用父类的空参构造,先完成父类数据的初始化。假如父类中没有提供空参构造,可以去调用父类有参构造。或者先用this调本类有参构造,然后你调用的构造又去调用父类的有参构造。
方法重写:
- 当子类出现了和父类一模一样的方法(方法名,参数列表,返回值类型都一样)就会发生子类方法覆盖父类方法,我们称这种现象为方法重写。
- 为什么要有方法重写这种机制br> 如果说子类对父类的方法不满意,那么子类就可以覆盖它。/子类想要对父类的功能进行扩展,也可以使用方法重写这种机制。
- @Override 可以用来检测是否发生了方法重写。
重写的注意事项:
1.父类私有的方法,子类无法重写,私有的方法子类都无法继承,何谈重写。
2.子类在重写父类方法时,权限修饰符不能低于父类,最好一样。
public>protected>deflaut(缺省)>pravite
3.静态方法不算重写。
方法重写与方法重载的区别:
方法重写 Overide:有继承的情况下,子类出现了和父类一模一样的方法
方法重载 Overload:允许一个类中出现多个同名方法,只要参数个数或参数类型不用即可。不拿返回值类型区分。
final
最终的 ,可以修饰类,变量,成员方法。
1.final修饰类,类不能被继承。
2.final修饰方法,方法不能被重写。
3.final修饰成员变量,公共的静态常量。
eg: public static final int NUM=10;
4.final修饰局部变量
**基本数据类型:**指的是值不能被改变是常量。
**引用数据类型:**指的是地址值不能被改变。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!