成员内部类
外部类名.内部类名 变量名 = new 外部类名().new 内部类();
public class Demo03 {
public static void main(String[] args) {
Outer.Inner in = new Outer().new Inner();
in.func();
}
}
class Outer{
int num1 = 10;
class Inner{
int num2;
public void func(){
System.out.println("我是内部类的方法");
}
}
}
匿名内部类
public class Demo03 {
public static void main(String[] args) {
/**
* 匿名内部类[接口]
*/
Inter it = new Inter(){
@Override
public void func() {
System.out.println("我是接口的匿名内部类");
}
};
it.func();
/**
* 匿名内部类[抽象类]
*/
AbsClass absClass = new AbsClass() {
@Override
void func() {
System.out.println("我是抽象类的匿名内部类");
}
};
absClass.func();
/**
* 方法参数是接口类型
*/
m1(new Inter(){
@Override
public void func() {
System.out.println("我是接口的匿名内部类");
}
});
m2(new AbsClass() {
@Override
void func() {
System.out.println("我是抽象类的匿名内部类");
}
});
}
public static void m1(Inter iter){
iter.func();
}
public static void m2(AbsClass absClass){
absClass.func();
}
}
interface Inter{
void func();
}
abstract class AbsClass{
abstract void func();
}
I'm so cute. Please give me money.
- 本文链接:http://yoursite.com/2020/04/25/%E5%86%85%E9%83%A8%E7%B1%BB/
- 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。
若没有本文 Issue,您可以使用 Comment 模版新建。
GitHub IssuesGitHub Discussions