接口:
接口里的属性是public final static;
接口里面方法全是抽象方法public abstract;
接口只能被抽象类实现或者被实现其所有方法的子类实现
接口不能被实例化,可以继承多个接口
成员的public可以省略,因为缺省
接口里的方法不能被final修饰,不然就不可以重写;
接口里的方法不能被static修饰,不然就不可以重写,但可以被继承的子类调用,而且子类可以声明和父类静态方法相同的方法;
接口里的方法不能被private修饰,因为访问不到;
A Instanceof B A是不是B的对象,或者他子类的对象
抽象:
Abstract:
Abstract修饰的类都是抽象类
抽象类不可以i被实例化;
抽象类里面可以含非抽象方法
抽象类只能被抽象类或者实现了其所有抽象方法的子类继承
含有抽象方法的类一定要定义为抽象类,抽象类不一定含有抽象方法;
抽象类中的成员可以不是public,接口是因为,接口本来就是给public用的
抽象类中可以有构造方法
访问修饰符:
public protected private 缺省
Public :同包不同包均可用
protected :同包+不同包子类
Private:子类
缺省:本包
多态:
父类的静态方法不会被重写,在编译时已经被加载了;
多态时,只能访问父类的方法和属性,不能访问子类特有的
父类的私有属性和方法也是不能够被访问的还要看访问修饰符
多态时的静态方法,成员变量,未覆盖的方法看父类,非静态方法且重写了的方法看子类
编译看左边运行看右边;
Static修饰的变量被所有类共享就像我写的那个Color一样,优先于对象存在
Static修饰的方法叫静态方法属于类,在加载类时会给此方法分配一次内存;(变量也一样)
而实例变量会在每一次实例化对象时被分配一次内存;
ClassName.静态成员调用
静态内部类的实例化要在静态内部类的前面加上 outer类的名字.
静态元素不可以访问非静态元素,非静态元素可以访问静态元素;