1.可以从现有的类派生出新类。这称为类的继承。新类称为次类、子类或派生类。现有的类称为超类、父类或基类。

2.构造方法用来构造类的实例。不同于属性和方法,子类不继承父类的构造方法。它们只能用关键字super从子类的构造方法中调用。

3.构造方法可以调用重载的构造方法或它的父类的构造方法。这种调用必须是构造方法的第一条语句。如果没有显式地调用它们中的任何一个,编译器就会把super()作为构造方法的第一条语句,它调用的是父类的无参构造方法。

4.为了覆盖一个方法,必须使用与它的父类中的方法相同的签名来定义子类中的方法。

5.实例方法只有是可访问的时候才能覆盖。这样,私有方法是不能覆盖的,因为它是不能在类本身之外访问的。如果子类中定义的方法在父类中是私有的,那么这两个方法是完全没有关系的。

6.静态方法与实例方法一样可以继承。但是,静态方法不能覆盖,如果父类中定义的静态方法在子类中重新定义,那么父类中定义的方法被隐藏。

7.Java中的每个类都源于java.lang.Object类。如果一个类在定义时没有指定继承关系,那么它的父类就是0bject。

8.如果一个方法的参数类型是父类(例如:0bject),可以向该方法的参数传递任何子类(例如:Circle类或String类)的对象。当在方法中使用一个对象(例如:Circle对象或String对象)时,动态地决定调用该对象方法(例如:toString)的某个特定的实现。

9.因为子类的实例总是它的父类的实例,所以,总是可以将一个子类的实例转换成一个父类的变量。当把父类实例转换成它的子类变量时,必须使用转换记号(子类名)进行显式转换,向编译器表明你的意图。

10.一个类定义一个类型。子类定义的类型称为子类型,而父类定义的类型称为父类型。

11.当从引用变量调用实例方法时,该变量的实际类型在运行时决定使用该方法的哪个实现。当访问数据域或静态方法时,引用变量的声明类型在编译时决定使用哪个方法。

12.可以使用表达式obj instanceof AClass(对象名instanceof类名)测试一个对象是否是一个 类的实例。

13.可以使用protected修饰符来防止方法和数据被不同包的非子类访问。

14.可以用final修饰符来表明一个类是终极的,是不能成为父类的;并且用它来表明一个方法是终极的,是不能覆盖的。

 

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/ql201209/p/16942928.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!