子类和继承

Posted rongbin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了子类和继承相关的知识,希望对你有一定的参考价值。

  • 任何类都是Object类(java.lang包中的类)的子孙类。
  • 子类和父类在同一个包中:不继承private成员变量和private方法。
  • 子类和父类不在同一个包中:不继承private和友好访问权限的成员变量和方法。
  • 其他类对象若访问某个类继承的protected成员变量或protected方法,需追溯到声明该protected成员变量和方法所在的“祖先”类,若在同一个包中可访问,若不在不可访问。
  • boolean:对象+instanceof+类。
  • 子类隐藏继承的成员变量:子类对象及子类自定义方法操作的是子类重新声明的成员变量,子类继承的方法操作的成员变量是子类继承或隐藏的成员变量。
  • 方法重写:方法的名字、参数个数、参数类型完全相同,方法的类型一样或是父类方法类型的子类型(方法的类型是“类”),访问权限不允许降低。

     目的:隐藏继承的方法。

  • 重写方法可操作继承的成员变量和方法,也可操作子类新声明的成员变量和方法,但调用被隐藏的方法或成员变量要使用super。
  • 子类不继承父类的构造方法,super必须是子类构造方法中的头一条语句。(默认有super();)
  • 如果类里定义了一个或多个构造方法,那么Java不提供默认的无参数构造方法。
  • final修饰:①类:不允许成为父类(不允许扩展,如String类)

        ②方法:不允许子类重写(不允许隐藏:重写)

          ③成员变量或局部变量:作为常量,声明时必须赋值

  • 上转型对象:将子类对象的引用放到父类的对象中。
  • 上转型对象不能操作子类新增的成员变量(属性)和新增方法(行为),可访问子类继承或隐藏的成员变量和继承或重写的方法。(可强制转换成子类对象)(如果子类重写的是父类的静态方法,则调用父类的静态方法)
  • 不可将父类对象的引用赋值给子类对象。
  • abstract修饰:①类(抽象类):类中可有abstract方法,非abstract类不可以有abstract方法。

         ②方法(抽象方法):不可用static修饰abstract方法,只允许声明(无方法体)。

  • 不可用final和abstract同时修饰一个类或方法。
  • 不可用new创建abstract类对象,但可以声明对象并成为其子类的上转型对象。
  • abstract类的子类:①abstract类:可以重写或继承父类的abstract方法。

           ②非abstract类:必须重写父类的abstract方法,给出方法体。

  • static只能修饰方法和变量。
  • 面向抽象编程目的是为了应对用户需求的变化。
  • 面向抽象编程的核心是让类中每种可能的变化对应地交给抽象类子类负责。

以上是关于子类和继承的主要内容,如果未能解决你的问题,请参考以下文章

子类将继承父类所有的方法和属性吗?为啥?

JAVA中,子类将继承父类的所有属性和方法么~?为啥?

子类能继承父类的哪些变量和方法

Java中的继承和多态

关于Java 的继承问题,子类会继承父类的哪些东西?

c++复习笔记——继承