匿名内部类与匿名对象
定义
类是一个模板,一个对象是一个实例,正常情况下,类和对象都是有名字的,但是,在某些情况下,为了简化,类和对象是不需要名字的,这就是匿名类与匿名对象。
普通的类和对象
普通的类和对象,定义和调用方式如下,很简单。
类名 对象名 = new 类名;
对象名.方法名(参数);
public class Demo01 {
public static void main(String[] args) {
// 这是普通对象的调用方式
Test01 test01 = new Test01();
test01.cfun1("普通对象");
}
}
class Test01 {
public void cfun1(String s) {
System.out.println(s + ":Hello Object1");
}
}
匿名对象的调用方式
匿名对象的调用方式,就一句话:
new 类名.方法名(参数);
public class Demo01 {
public static void main(String[] args) {
// 这是匿名对象的调用方式
new Test01().cfun1("匿名对象");
}
}
class Test01 {
public void cfun1(String s) {
System.out.println(s + ":Hello Object1");
}
}
匿名内部类的定义方式及使用
匿名内部类一般是在通过覆盖重写接口或者抽象类的方法来定义的,使用方式可用普通对象的方式,也可以用匿名对象的方式。
public class Demo01 {
public static void main(String[] args) {
//匿名内部类定义
Test02 test02= new Test02() {
@Override
public void ifun1(String s) {
System.out.println(s + ":Hello Object2");
}
};
test02.ifun1("匿名内部类");
//匿名内部类定义+匿名对象使用
new Test02() {
@Override
public void ifun1(String s) {
System.out.println(s + ":Hello Object2");
}
}.ifun1("匿名内部类+匿名对象");
}
}
interface Test02 {
public void ifun1(String s);
}
输出结果
普通对象:Hello Object1
匿名对象:Hello Object1
匿名内部类:Hello Object2
匿名内部类+匿名对象:Hello Object2
版权声明:本文为qq_43648399原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。