一、外部类
package com.ykq;
public class OuterClass {
public static void main(String[] args) {
ISystemOut out = new SystemOut();
out.println();
}
}
class SystemOut implements ISystemOut{
public void println() {
System.out.println("控制台输出");
}
}
interface ISystemOut{
public void println();
}
二、成员内部类
package com.ykq;
public class InnerClass {
class SystemOut implements ISystemOut{
public void println() {
System.out.println("控制台输出");
}
}
public static void main(String[] args) {
new SystemOut().println();
}
}
interface ISystemOut{
public void println();
}
二、静态内部类
package com.ykq;
public class InnerClass {
static class SystemOut implements ISystemOut{
public void println() {
System.out.println("控制台输出");
}
}
public static void main(String[] args) {
new SystemOut().println();
}
}
interface ISystemOut{
public void println();
}
三、局部内部类
package com.ykq;
public class InnerClass {
public static void main(String[] args) {
class SystemOut implements ISystemOut{
public void println() {
System.out.println("控制台输出");
}
}
new SystemOut().println();
}
}
interface ISystemOut{
public void println();
}
四、匿名内部类
package com.ykq;
public class InnerClass {
public static void main(String[] args) {
new ISystemOut(){
public void println() {
System.out.println("控制台输出");
}
}.println();
}
}
interface ISystemOut{
public void println();
}
五、lambda表达式
package com.ykq;
public class LambdaClass {
public static void main(String[] args) {
ISystemOut iSystemOut = () -> {
System.out.println("控制台输出");
};
iSystemOut.println();
}
}
interface ISystemOut{
public void println();
}