匿名类(Anonymous Class)
匿名内部类,简称匿名类:是内部类的一种化简写法。
基本写法如下:
BaseType obj=new BaseType(){
//类的定义
}
Java项目中匿名类的写法十分常见。
匿名内部类也是内部类,所以语法上和内部类一样使用。
this. 访问本类对象的成员
匿名内部类,简称匿名类:是内部类的一种化简写法。
基本写法如下:
BaseType obj=new BaseType(){
//类的定义
}
Java项目中匿名类的写法十分常见。
匿名内部类也是内部类,所以语法上和内部类一样使用。
this. 访问本类对象的成员
OUTER.this 访问外部类OUTER对象的成员
AbstractClass.java
package my;
public abstract class AbstractClass
{
public abstract void Print();
}
HelloWorld.java
package my;
public class HelloWorld
{
public void CalledAbstractClassPrint() {
AbstractClass Anonymous_Abstract=new AbstractClass() {
@Override
public void Print()
{
System.out.println("Anonymous_Abstract Called");
}
};
Anonymous_Abstract.Print();
}
public void CalledNormalClassPrint() {
NormalClass Anonymous_Normal=new NormalClass() {
public void Print() {
System.out.println("Anonymous_Normal called");
super.Print();
}
};
Anonymous_Normal.Print();
}
public void CalledInterfaceDemoPrint() {
InterfaceDemo Anonymous_Interface=new InterfaceDemo() {
@Override
public void Print(){
System.out.println("Anonymous_Interface called");
}
};
Anonymous_Interface.Print();
}
public static void main(String[] args)
{
HelloWorld t=new HelloWorld();
t.CalledAbstractClassPrint();
t.CalledNormalClassPrint();
t.CalledInterfaceDemoPrint();
}
}
InterfaceDemo.java
package my;
public interface InterfaceDemo
{
public void Print();
}
NormalClass.java
package my;
public class NormalClass
{
private int data=10;
public void Print() {
System.out.println("The value of NormalClass is "+data);
}
}