final:
final修饰的类不可继承,但可以继承其他类
final修饰的方法不可被子类重写
final修饰成员变量时,必须直接赋值或者通过构造方法赋值
final不能修饰接口,抽象类,抽象方法
final修饰成员变量,需要在创建对象前赋值
static:静态修饰符
被static修饰的成员变量属于该类,不属于该类的对象,最好通过类名直接访问:
类名.静态成员变量名
类名.静态成员方法名(参数)
将static的成员变量值修改后,其他对象中的static成员变量值跟着改变,多个对象共享同一个static成员变量值。
静态内容优先于对象存在,同一个类中静态只能访问静态,存于静态于方法共享区,无法使用this super。
多态调用时:
运行静态方法,运行父类中的方法
运行非静态方法,运行子类中的重写方法
成员变量,父类
public static final静态常量:
匿名对象:
new Person();
new Person().eat();
匿名对象直接使用,没有变量名
匿名对象在没有指定其引用变量时,只能是用一次
匿名对象可以作为方法接收的参数,方法返回值使用
demo.get(new Person());
return new Person();
内部类:成员内部类,局部内部类
外部类名.内部类名 变量名 = new 外部类名().new 内部类名();
Out.In oi=new Out().new In();
oi.xxxxx();
局部内部类:在外部类的方法中,创建内部类,进行访问
public class Out{ public void out(){ class In{xxx}} In in=new In(); //创建内部类的对象 in.in() //调用自己 }
在外部访问out方法时,即可创建对象并同时调用该对象。
匿名内部类:使用匿名对象的方式,将定义子类与创建子类对象两个步骤由一个格式一次完成
格式为 new 父类(){方法重写}
new Father(){xxxxxx};
多态方法:定义并创建该父类的子类对象,并用多态的方式赋值给父类引用变量
Father fa=new Father(){xxxxx};