访问修饰符
多态
多态:所谓多态,就是父类型的引用可以指向子类型的对象,或者接口类型的引用可以指向实现该接口的类的实例。关于接口与实现接口的类之间的强制类型转换方式与父类和子类之间的强制类型转换方式完全一样。
一些关键字
abstract (抽象)
abstract 可以修饰方法、类
1.抽象类不能实例化。
2.包含抽象方法的一定是抽象类,抽象类可以没有抽象方法。
3.父类是抽象类的抽象方法不能实现。
4.在子类继承父类(父类是个抽象类)的情况下,那么该子类必须要实现父类中所定义的所有抽象方法。否则,该子类需要声明为抽象类。
static(静态)
static 可以修饰属性、方法、内部类
无论一个类生成了多少个对象,所有这些对象共同使用唯 一一份静态的成员变量;
一个对象对该静态成员变量进行了修改,其他对象的该静态成员变量的值也会随之
发生变化。如果一个成员变量是 static 的,那么我们可以通过类名.成员变量名的方
式来使用它(推荐使用这种方式)。
1.顶级类不能为静态类。
2.非静态内部类不能有静态方法,静态变量(顶级类可以)。
3.静态方法只能访问静态的变量和方法,非静态方法可以静态和非静态的变量和方法。
4.静态方法可以被继承,但是是不能重写的,只能“隐藏”,也就是静态方法是没有多态性的。
- 静态代码块只会执行一次,是在类被加载的时候执行的,因为每个类只 会被加载一次,所以静态代码块也只会被执行一次;而构造方法则不然,每次生成一个对象的时候都会调用类的构造方法,所以 new 一次就会调用构造方法一次。
final (终态)
final 可以修饰属性、方法、类。
1.final 类不能被继承。
2.final方法不能被重写。
3.final属性不能被改写,可以在声明的时候赋值,或者在构造方法里面赋值;
内部类
访问方式
|
|
静态内部类 (static inner class)
|
|
1.只能访问外部类的静态成员变量与静态方法。
2.生成内部类方式为1Inner.MInner inner=new Inner.MInner();
成员内部类(member inner class)
|
|
1.可以访问外部类的静态和非静态的方法与成员变量。
2.生成内部类方式为1Inner.MInner inner=new Inner().new MInner();
局部内部类(Local Inner Class)
1.定义在方法里面的类。
2.只能访问方法中声明的 final 类型的变量。
3.想要执行内部类的方法可以在顶级类的方法里面实例化并执行内部类。1234567class Inner{ public void getMyMInner{ class MInner{ } }}
匿名内部类 (Anonymous Inner Class)
1.匿名内部类会隐式地继承一个父类或实现一个接口。
或许会继续更新