java heap space 内存溢出(Java学习十一)
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修饰符来表明一个类是终极的 ,是不能成为父类的;并且用它来表明一个方法是终极的 ,是不能覆盖的。
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!