javase—继承

javase---继承:(包含this.和super的区别)


继承的特点:
          java中只支持单一继承,只能继承一个父类。
          java中支持多层继承(一个儿子可以有亲爹,还可以有一个亲爷爷。。。)
继承中成员变量的特点:
          子类只能继承父类中非私有的成员:
          子父类中成员变量的名字和父类中的名字不一样获取父类的
          如果一样则选择子类中的。
就近原则:谁离我近我就用谁的。
   如果有局部变量就使用局部变量(如果有局部变量想用成员变量就用this调用)
   如果没有局部变量,有子类的成员变量就使用子类的成员变量
   如果没有局部变量和子类的成员变量,有父类的成员变量就使用父类的成员变量
super:可以获取父类中的成员变量和成员方法,用法和this相似。
继承中的成员方法的特点
          方法的重写:在子类中,子类的方法和父类的一样,子类重写父类的方法(方               法的覆盖)
          方法的重载:在一个类中,有多个重名的方法,但是其中参数不一样(参数的个数,参数的类型,参数的顺序),和返回值无关。
          方法重写的应用场景:
          当父类中的方法不能完全满足子类中的使用,这个时候子类重写父类中的方法。并且可以在方法中使用super调用。
方法重写注意事项:
          不能重写父类中的私有方法。
          权限修饰符子类的要大于父类的。重写的时候最好加上注解,注解可以帮助提示你是否正确的重写,是一种标准。
          继承中构造方法的执行顺序:
          在有子类父类中,创建子类的对象,调用子类中的对象时,如果第一行没有指明调用什么,则默认调用父类中的无参构造器。
           为什么调用子类对象的时候一定会执行父类中的构造方法:
           1,因为当子类创建对象完毕,那么就可以使用父类的 成员(成员变量,成员方法) 而父类的构造方法就是用于给自己的成员变量进行初始化的(就是给成员变量赋默认值)
           2,因为在子类的构造方法里都隐藏了一个 super(); 默认调用父类的无参构造
继承的优缺点:
          优点:
          提高了代码的复用性:
          提高了代码的可维护性。
          缺点:
          类的耦合性增强了
          开发的原则:高内聚低耦合(提高自己类完成的能力,少一点其他的类参与)
 * this和super的区别
        this:当前对象的引用
            调用子类的成员变量
            调用子类的成员方法
            在子类的构造方法第一行调用子类其他构造方法
        super:子类对象的父类引用
            调用父类的成员变量
            调用父类的成员方法
            在子类的构造方法第一行调用父类的构造方法
              this和super在调用构造方法的时候,必须在第一行,不能在一个方法中同时在一起使用

你可能感兴趣的:(javase)