构造器初始化:
构造器返回对象实例,对象引用的内存分配和初始化已经在构造器方法之前已经做完。只是此时的对象还不能被访问,只能在构造器中使用this访问,只有在构造器执行完毕,此时对象才可以被外部访问。
多态:
引用变量有两个类型:一 编译类型 二 运行时类型
编译类型由声明该变量时的类型决定
运行时类型由实际赋给该变量的对象决定,
当两者类型不同时,就会出现多态。
抽象类:
抽象方法不能被实例化
只要没有实现完毕抽象方法的类。都只能定义为抽象类
非静态内部类:
外部类不能访问非静态内部类的成员变量和方法
内部类对象持有外部类的对象引用,
内部类可以访问外部类的成员变量
内部类不能调用和定义静态成员和方法。
内部类是寄生在外部类的
静态内部类:
静态内部类是属于外部类的类成员的,和外部类对象实例无关
持有外部类的类引用
所以外部类的对象实例是不能访问内部类的。
匿名内部类:
匿名内部类不能是抽象类,因为创建匿名内部类时,会立马创建匿名类对象。
匿名内部类不能定义构造器,匿名内部类是没有类名的,所以无法定义构造器,但是可以使用代码初始块。
通过代码初始块来完成初始化。
常见匿名内部类,就是创建某个接口类型的对象。
public interface p
{
void getp();
}
test t = new test();
t.test(new p(){
void getp(){
}
});
枚举类:
T.values() 该方法可以获得枚举类的实例数组。
实现接口的枚举类
public interface Gender{
void info();
}
public enum test implements Gender{
Male("男){
void info(){
xxxxxxxxxx
}
},
FeMale("女"){
void info(){
xxxxxxxxxx
}
};
}