final和static

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};