1. abstract class
abstract class can have anything a normal class can have plus abstract method
public abstract class Test11 {
public int a;
private int b;
public abstract void f1();
public void f2() {
}
}
2.interface
only final variable and abstract method,
can extends another interface, can extends more than 1 interface
cannot extends class or implement interface
public interface Inter2 extendsInter1, Inter2 {public int a = 1;public abstract voidf1();public voidf2();
}
3. static nested class & inner class
Static nested class:
a static nested class is behaviorly a top level class
public classStaticNestedOuter {public static voidmain(String[] args) {
StaticNestedOuter.StaticNestedClass sn= newStaticNestedClass();
}static classStaticNestedClass {
}
}
Inner class:
public classOuterClass {privateString baz;public static voidmain(String[] args) {
OuterClass oc= newOuterClass();
InnerClass ic= oc.newInnerClass();
}public voidfoo() {
InnerClass ic2= newInnerClass();
}classInnerClass {public voidprint() {//access outer member in 2 ways
System.out.print(OuterClass.this.baz);
System.out.print(baz);
}
}
}