接口与抽象类的区别(来源:chenanle)
2019-07-17 本文已影响0人
菊小九
接口:interface
interface interfaceA {}
- 实现某个接口的关键字是:implement
[修饰符] class [类名] extends 父类 implement 接口 { 类体部分 }
-
不管是否使用public,final,static修饰符,接口里的属性总将使用这三个修饰符来修饰(默认)
-
下面两行代码的结果完全一样
int MAX_SIZE = 50;
public final static int MAX_SIZE = 50;
-
接口里定义的方法都是抽象方法,所以用abstract来修饰,不允许用static来修饰方法(静态方法)
-
内部类:我们把一个类放在另一个类的内部定义,这个定义在其他类内部的类就叫内部类
public class OutClass { //此处可以定义内部类 }
在非静态的内部类里可以直接访问外部类的private成员
-
非静态内部类不允许有静态声明(static:静态方法,静态属性,静态初始化块)
-
外部类可以通过类名来访问静态内部类的类成员,通过类名来访问静态内部类的类成员
public class AccessStaticInnerClass {
static class StaticInnerClass {
private static int a = 5;
private int b = 9;
}
public void accessInnerProp() {
System.out.println(StaticInnerClass.a); //通过类名来访问静态内部类的类成员
System.out.println(new StaticInnerClass().b); //通过类名来访问静态内部类的类成员
}
}
枚举类
- 一个java源文件中最多只能定义一个public访问权限的枚举类,且改java源文件也必须和该枚举类的类名相同
public enum SeasonEnum {
SPRING,SUMMER,FALL,WINTER;
}