在JAVA中有匿名类,可以支持传入集成的接口/父类。
Java 中可以实现一个类中包含另外一个类,且不需要提供任何的类名直接实例化。
主要是用于在我们需要的时候创建一个对象来执行特定的任务,可以使代码更加简洁。
匿名类是不能有名字的类,它们不能被引用,只能在创建时用 new 语句来声明它们。
使用方式:
class outerClass { // 定义一个匿名类 object1 = new Type(parameterList) { // 匿名类代码 }; }
一、匿名类继承一个父类
class APolygon { public void display() { System.out.println("在 Polygon 类内部"); } } class AnonymousDemo { public void createClass() { // 创建的匿名类继承了 Polygon 类 APolygon p1 = new APolygon() { public void display() { System.out.println("在匿名类内部。"); } }; p1.display(); } } class Main { public static void main(String[] args) { AnonymousDemo an = new AnonymousDemo(); an.createClass(); } }
在AnonymousDemo的CreateClass方法中,匿名创建一个APolygon类,调用的结果就是匿名类的方法,输出
在匿名类内部。
二、匿名类实现一个接口
interface IPolygon { public void display(); } class AnonymousDemo { public void createClass() { // 匿名类实现一个接口 IPolygon p1 = new Polygon() { public void display() { System.out.println("在匿名类内部。"); } }; p1.display(); } } class Main { public static void main(String[] args) { AnonymousDemo an = new AnonymousDemo(); an.createClass(); } }
在AnonymousDemo的CreateClass方法中,匿名创建一个Polygon类继承了IPolygon接口,调用的结果就是匿名类的方法,输出
在匿名类内部。