Java入门之继承(上)

作者: kakarotto | 来源:发表于2018-07-30 22:11 被阅读3603次

    继承

    概念:

    • 一种类与类之间的关系

    • 使用已存在的类的定义作为基础建立新类

    • 新类的定义可以增加新的数据或功能,也可以用父类的功能,但不能选择性地继承父类,需全部把父类的东西继承过来。

    • 子类只能继承父类非私有成员

    特点:

    1.利于代码复用

    2.缩短开发周期

    语法:

    1.使用extends实现继承

    2.单一继承,只能有一个父类

    /*
    * Dog 为子类 又名派生类
    * Animal 为父类 又名 超类、基类
    */
    class Dog extends Animal{
      
    }
    

    方法重载要求:

    1.同一个类中

    2.方法名相同,参数列表不同(参数顺序 、个数 、类型)

    3.方法返回值、访问修饰符

    4.与方法的参数名无关

    方法重写要求:

    1.有继承关系的子类中 ,子类重写父类方法

    2.方法名,参数类型、顺序、个数 都要与父类的方法相同

    3.方法返回值类型与父类兼容就可以,允许发生改变

    4.访问修饰符,访问范围需要大于等于父类的访问范围

    5.与方法的参数名无关

    访问修饰符

    • 公有的 public (允许任意位置使用)

    • 私有的 private (只允许在本类中使用)

    • 受保护的 protected (允许在当前类、同包子类/非子类、跨包子类调用、跨包非子类不能允许)

    • 默认 (允许在当前类 同包子类调用;跨包子类/非子类不允许调用)

    super关键字

    super代表父类对象的引用,通过super访问父类的成员

    父类的构造方法不允许被继承,不允许被重写,但是会影响子类实例化过程

    继承后的初始化顺序(子类对象的实例化过程)

    父类静态成员 → 子类静态成员 → 父类对象构造 → 子类对象构造

    • 子类的构造的过程中必须调用其父类的构造方法

    • 如果子类的构造方法中没有显示的标注,则系统默认调用父类的无参构造方法

    • 如果子类的构造方法中既没有显示标注,且父类中没有无参的构造方法,则编译错误

    • 使用super调用父类指定的构造方法,必须在子类构造方法的第一行

    public Cat(String name, int age){
      super(name, age);
    }
    

    this 和 super

    this : 当前类对象的引用

    • 访问当前类的成员方法、成员属性

    • 访问当前类的构造方法

    • 不能在静态方法中使用

    super

    • 访问父类的成员方法、成员属性

    • 访问父类的构造方法

    • 不能在静态方法中使用

    this和super不能同时使使用

    在继承(下)中会学习更深入的知识,敬请期待,很快更新。

    相关文章

      网友评论

        本文标题:Java入门之继承(上)

        本文链接:https://www.haomeiwen.com/subject/nxpqvftx.html