04月19, 2019

Java-继承和多态

Java- 继承和多态

  1. 可以从现有的类派生出新类。这称为类的继承。新类称为次类、子类或派生类。现有的类称为超类、父类或基类。
  2. 构造方法用来构造类的实例。不同于属性和方法,子类不继承父类的构造方法。它们只能用关键字 super 从子类的构造方法中调用。
  3. 构造方法可以调用重载的构造方法或它的父类的构造方法。这种调用必须是构造方法的第一条语句。如果没有显式地调用它们中的任何一个,编译器就会把 super()作为构造方法的第一条语句,它调用的是父类的无参构造方法。
  4. 为了覆盖一个方法,必须使用与它的父类中的方法相同的签名来定义子类中的方法。
  5. 实例方法只有是可访问的时候才能覆盖。这样,私有方法是不能覆盖的,因为它是不能在类本身之外访问的。如果子类中定义的方法在父类中时私有的,那么这两个方法是完全没有关系的。
  6. 静态方法与实例方法一样可以继承。但是,静态方法不能覆盖,如果父类中定义的静态方法在子类中重新定义,那么父类中定义的方法被隐藏。
  7. Java 中的每个类都源于 Java.lang.Object类。如果一个类在定义时没有指定继承关系,那么它的父类就是Object
  8. 如果一个方法的参数类型是父类(例如:Object),可以向该方法的参数传递任何子类(例如:Circle 类或 String 类)的对象。当在方法中使用一个对象(例如:Circle对象或String 对象)时,动态的决定调用该对象方法(例如:toString)的某个特征的实现。(C++ 中的使用虚函数实现动态连编)。
  9. 因为子类的实例总是它的父类的实例,所以,总是可以将一个子类的实例转换成一个父类的变量。当把父类的实例转换成它的子类变量时,必须使用转换记号(子类名)进行显式转换,向编译器表明你的意图。
  10. 一个类定义一个类型。子类定义的类型称为子类型,而父类定义的类型称为父类型。
  11. 当从引用变量调用实例方法时,该变量的实际类型在运行时决定使用该方法的哪个实现。当访问数据域或静态方法时,引用变量的声明类型在编译时决定使用哪个方法。
  12. 可以使用表达式obj instanceof AClass(对象名 instanceof 类名)测试一个对象是否是一个类的实例。
  13. 可以使用 protected 修饰符来防止方法和数据被不同包的非子类访问。
  14. 可以使用final 修饰符来表明一个类是终极的,是不能成为父类的;并且用它来表明一个方法是终极的,是不能覆盖的。

本文链接:http://www.iuutech.com/post/Java--继承和多态.html

-- EOF --

Comments