import
构造函数
关键字
继承
关于import
- 如果有2个类:
a.b.c.C1
a.b.C2
import a.b.* 可以导入C2类但是无法导入C1
import a.b.c.* 才可以导入C1
构造函数
- 调用自己的构造函数 this(xx…)。
- 调用父类的构造函数super(xxx…)
- 每个构造函数在开始以前,会默认的调用其父类的无参数构造方法,除非这个类开始显式的调用了其他的父类构造函数。
推论1:如果一个父类,显式的声明了构造函数,且没有无参数构造函数,则其子类构造函数的第一句必须显示的调用父类的一个构造函数
推论2:如果一个类,显示的声明了构造函数,且没有无参数构造函数,则其子类必须显式的声明构造函数
- 在构造子类对象时,JVM会先调用父类的构造方法。如果子类构造方法中没有通过super语句调用父类构造方法,那么JVM会调用父类的默认构造方法,如果不存在默认构造方法,将导致编译错误
- System.gc();//强制系统回收内存
- 首先调用父类构造函数,析构函数,一定要最后调用父类析构函数
this关键字
- this()表示在构造方法中调用构造方法(只能用在构造函数中)
- 用法 static 方法里面不能调用this
final关键字
- final变量:必须被显式的初始化,并且只能初始化一次(定义时候或者在构造函数)
native关键字
- native只用来修饰方法。
- native方法用其它语言(如C语言)实现,所以没有程序代码块。
interface
- 接口默认方法public
继承带来的override问题
-
子类方法不能缩小父类方法的访问权限,但可以扩大访问权限
-
子类方法不能抛出比父类方法更多的异常
class ExceptionA extends Exception{}
class ExceptionB extends ExceptionA{}
class ExceptionC extends ExceptionB{}
public class Parent {
void method() throws ExceptionB{}
}
public class Child1 extends Parent {
void method()throws ExceptionA {} //非法
}
public class Child2 extends Parent {
void method()throws ExceptionC {} //合法
}
首先调用父类构造函数,析构函数,一定要最后调用父类析构函数
instanceof
Cat cat=new Cat();
cat instanceof Animal 返回true
cat instanceof Creature 返回true
cat instanceof Dog 返回false
网友评论