继承与方法重载

面向对象三大特征:继承、多态、封装
继承
1.Inherit继承:继承可以解决代码复用的问题。当多个类存在相同的属性(变量)和方法时,可以从这些类中抽象父类,在父类中定义这些相同的属性和方法,所有的子类不需要重新定义,只需要通过extends语句来声明继承某一父类。
格式:
class 子类 extends 父类
这样,子类就会自动拥有父类定义的某些属性和某些方法。
 
2.子类只能继承父类的public、protected、default 权限的属性和方法!子类不能够继承父类的private 变量或方法。如果不希望父类某些变量或方法被继承,那就设它为private
 
3.子类只能够继承一个父类!C++才可以多继承
    Java中要实现子类的多继承,那就应该使用接口。
    方法覆盖(override):继承了父类的方法后,可以在子类中对继承的方法进行重写,子类的名称、返回类型、参数要和父类的方法完全一样,如果不一样,那就说明你自己定义了一个新方法。
还有很重要的一点,子类方法不能缩小父类方法的访问权限!比如父类是public方法,你子类不能是protected、default、private,你父类是default,你子类不能是private,但可以是public、protected,原因: 是因为如果过低的话,将来实现多态的时候就会出现问题, 例子: 在父类中是public的方法,如果子类中将其降低访问权限为private, 那么父类在实现多态时如果调用子类的这个重写方法,但是这个方法已经是private,没有办法调用,所以就无法实现多态了。
 
4.Java中所有的类都是Object类的子类。在编译器中,可以选中类按Ctrl+T查看类的继承层次结构
 
5.方法重载:
  •     方法名相同;
  •     方法的参数的类型、个数、顺序至少有一项不同
  •     方法的返回值类型不一样并不能够构成重载
  •     如果只是方法的访问权限不同并不能构成重载
 
6.boolean instanceof
    用法:XXX instanceof YYY
    判断XXX是不是YYY类型
原文地址:https://www.cnblogs.com/Kundalini/p/11707781.html