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



继承的特点:

          java中只支持单一继承,只能继承一个父类。

          java中支持多层继承(一个儿子可以有亲爹,还可以有一个亲爷爷。。。)

继承中成员变量的特点:

          子类只能继承父类中非私有的成员:

          子父类中成员变量的名字和父类中的名字不一样获取父类的

          如果一样则选择子类中的。

就近原则:谁离我近我就用谁的。

   如果有局部变量就使用局部变量(如果有局部变量想用成员变量就用this调用)

   如果没有局部变量,有子类的成员变量就使用子类的成员变量

   如果没有局部变量和子类的成员变量,有父类的成员变量就使用父类的成员变量

super:可以获取父类中的成员变量和成员方法,用法和this相似。

继承中的成员方法的特点

          方法的重写:在子类中,子类的方法和父类的一样,子类重写父类的方法(方               法的覆盖)

          方法的重载:在一个类中,有多个重名的方法,但是其中参数不一样(参数的个数,参数的类型,参数的顺序),和返回值无关。

          方法重写的应用场景:

          当父类中的方法不能完全满足子类中的使用,这个时候子类重写父类中的方法。并且可以在方法中使用super调用。

方法重写注意事项:

          不能重写父类中的私有方法。

          权限修饰符子类的要大于父类的。重写的时候最好加上注解,注解可以帮助提示你是否正确的重写,是一种标准。

          继承中构造方法的执行顺序:

          在有子类父类中,创建子类的对象,调用子类中的对象时,如果第一行没有指明调用什么,则默认调用父类中的无参构造器。

           为什么调用子类对象的时候一定会执行父类中的构造方法:

           1,因为当子类创建对象完毕,那么就可以使用父类的 成员(成员变量,成员方法) 而父类的构造方法就是用于给自己的成员变量进行初始化的(就是给成员变量赋默认值)

           2,因为在子类的构造方法里都隐藏了一个 super(); 默认调用父类的无参构造

继承的优缺点:

          优点:

          提高了代码的复用性:

          提高了代码的可维护性。

          缺点:

          类的耦合性增强了

          开发的原则:高内聚低耦合(提高自己类完成的能力,少一点其他的类参与)

 * this和super的区别

        this:当前对象的引用

            调用子类的成员变量

            调用子类的成员方法

            在子类的构造方法第一行调用子类其他构造方法

        super:子类对象的父类引用

            调用父类的成员变量

            调用父类的成员方法

            在子类的构造方法第一行调用父类的构造方法

              this和super在调用构造方法的时候,必须在第一行,不能在一个方法中同时在一起使用