abtract:
abstract修饰的类是抽象类,既有歇类中有些内容还没有定义完整,这样的类只能将类头部定义完整。抽象类一般只能做父类。(与final相克,不能同时修饰同一个类)
修饰方法:只定义了方法头部,没有方法体。eg:abstract void tt ();
抽象类不一定有抽象方法,但含有抽象方法的类一定是抽象类。
如果子类没有实现抽象类中所有的抽象方法,那么子类要定义为抽象类。
作用:
抽象类的作用就是做抽象类:
接口:
格式: interface 接口名{}
接口中的方法体不给出方法体,是抽象方法,即都是public static 方法,接口中只允许定义常量。不允许定义变量,接口中的成员变量都是public static final 型的。
实现:
class 类名 implement 接口列表{
类体
}
类实现接口意味着类要继承接口,然后再重写方法体。 一个类实现一个接口,如果该类不是抽象类,则必须实现接口中的每个方法,如果一个类同时实现多个接口,接口名之间必须用逗号隔开。
访问控制符
内部类:
非静态内部类:
菲静态内部类在外部类中与外部类的方法处于等同位置。
格式:
class Outer {
class Inner{}
}
非静态内部类不允许有任何静态声明。
静态内部类(创建静态内部类时,不用事先创建外部类的对象):
静态内部类只能直接访问外部类的静态成员,不能直接访问外部类的非静态成员,如一定要访问,则必须通过对象访问。
方法内部类:
把类定义在方法内,就叫做方法内部类,方法内部类的作用域与局部变量相同。