public class TestClass {
interface A {// 内部接口, 2、JAVA特性特征:封装
public void getX(String x);// 重载,3、JAVA特性特征:多态
public void getX(int x);
}
class B {// 内部类,非静态内部类
public void getX() {
}
}
class C extends B {// 内部类被继承,4、JAVA特性特征:继承
@Override
public void getX() {// 重写, 3、JAVA特性特征:多态
}
}
class D implements A {
@Override
public void getX(String x) {
}
@Override
public void getX(int x) {
}// 内部类实现接口
}
interface E {
void get();
}
class F {
public E get(int x) {
return new E() {// 匿名内部类,没有名字的内部类,可以实现接口,但直接使用implements语法上不通
@Override
public void get() {
}
};
}
public C get() {
return new C() {// 匿名内部类,不能是抽象类,能继承类,但直接使用extends语法上也不通
};
}
}
static class G {// 静态内部类,嵌套类
}
abstract class H {// 1、JAVA特性特征:抽象
}
interface J {
}
// 测试抽象与接口的相互调用
abstract class I extends H {
}
interface K extends J {
}
interface N implements J{
}
abstract class L implements J {
}
interface M extends H {// 错误
}
public static void main(String[] args) {
B b = new C();// 正确
C c = new B();// 错误
}
}