匿名内部类有两种实现方式。1实现接口 2继承一个抽象类/普通类
大概就是在方法或代码块中new 一个接口/抽象类/普通类,重写其中的方法。这就是匿名内部类。
相当于新建了一个类,只不过没有类名,然后直接new了这个匿名类的对象,应该就是建了一个子类
package com.example.demo;
public class User {
private int userId;
private String name;
private int age;
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
package com.example.demo;
public class T {
static String s1 = new String("f");
static Runnable runnable = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println("runnable");
}
};
static{
System.out.println("静态代码块"); // 类加载时执行,并且只会执行一次
}
{
System.out.println("构造代码块"); // new构造方法执行完毕后执行
}
public static void main(String[] args) {
System.out.println("main");
new T();
new Thread(runnable).start();
User user = new User() {
@Override
public String getName() {
System.out.println("匿名内部类");
System.out.println(T.this.s1);
return "匿名内部类getName方法的返回";
}
};
String name = user.getName(); // 不调用匿名内部类的方法的话,方法不会运行。
System.out.println(name);
}
}
什么是匿名内部类
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...