继承作用:
基本作用:代码复用
重要作用:方法覆盖和多态机制
=============================================================================
什么时候需要方法覆盖(理解)
怎么进行方法覆盖(掌握)
方法覆盖的条件及注意事项(掌握)
===============================================================================
1、子类继承父类之后,当继承过来的方法无法满足当前子类的业务时,子类有权利对这个方法进行重新编写,有必要进行“方法的覆盖”。
方法覆盖:Override//方法重写(重新编写)overwrite
将继承过来的方法进行了覆盖;
当子类对父类继承的方法进行“方法覆盖”之后。子类对象调用该方法的时候,一定执行覆盖之后的方法。
方法重载:Overload。
当在一个类中,如果功能相似的话,建议将名字定义的一样,这样代码美观,并且方便编程。
什么条件满足之后能够构成方法重载overload?
条件一:在同一个类中
条件二:方法名相同
条件三:参数列表不同(个数、顺序、类型)
在代码级别上,怎么编写构成了方法覆盖呢?
条件一:两个类必须要有继承关系
条件二:重写之后的方法和之前的方法,具有相同的返回类型、方法名相同、参数类型。
条件三、访问权限不能更低、可以更高(这个先记住):
父类的方法权限要小于等于子类的重写之后方法,才可以编译通过。
条件四:重写之后的方法不能比之前的方法抛出更多的异常,可以更少(这个先记住)
注意事项:(学习多态之后再次理解)
注意一:方法覆盖只针对于方法,和属性无关
注意二:私有方法无法覆盖
注意三、构造方法不能被继承,所以构造方法发也不能被覆盖
注意四:方法覆盖只是针对于实例方法,静态方法没有意义。
关于Object类中的to String方法
1、toString方法的作用:将”java“对象转换成”字符串的形式”。大多数的java类toString方法都是需要覆盖的,因为Object类中提供的toString()方法输出的是一个java对象的内存地址。
至于toString()方法怎么进行覆盖?
格式可以自己定义,或者听项目需求。
2、Object,类中的toString()方法的默认实现是什么?
toString:方法名的意思是转换成String
含义:调用一个java对象的toString()方法就可以将java对象转换成字符串的表示
3、那么toString()方法给的默认实现够用吗?(覆盖toString方法)
所以进行了方法覆盖
4、方法重载和方法覆盖有什么区别?
方法重载发生在同一个类中
方法覆盖是发生在具有继承关系的父子类之间
方法重载是在一个类中,方法名相同,参数列表不同
方法覆盖是具有继承关系的父子类,并且重写之后的方法必须和之前的方法一致:具有相同的返回类型、方法名相同、参数类型。
标签:java,覆盖,子类,toString,Override,方法,类中 From: https://www.cnblogs.com/gbrr/p/16743153.html