java语言基础之匿名类和匿名对象

目录

一、概念

二、声明匿名类

三、性质

四、意义


一、概念

匿名类是没有类声明的类,即没有public class 声明的类,也就是没有类的名字。

二、声明匿名类

用new调用父类构造方法,在父类构造方法后面直接加{}写类体,这样就得到了一个匿名对象

public class Test {
	
	public static void main(String[] args) {
        //s为父类型的引用,不是匿名对象的引用
		Speakable s = new Speakable(){           //Speakable的匿名实现类体
			String name ="Herrona";//在本类中使用
			public void speak()
			{
				System.out.println(name+"说:哈哈");
			}
                        //添加方法
                         public void eat()
			{
				System.out.println("在吃东西");
			}
		};
		s.speak();//可通过父类型引用调用匿名对象重写的方法
                s.eat(); //会报编译错,因为s是父类型的引用
	}
}

interface Speakable {
	void speak();
}

三、性质

1. 匿名类一定是某类或者某接口的子类,可以继承、增加、重写成员。

2. 匿名类一定是内部类

3. 匿名类体中不可以声明静态变量和方法(静态成员必须通过类名访问,匿名类没有名字,所以不能有static修饰的成员)

4. 匿名类直接使用父类的构造方法

四、意义

使得某些接口的使用更加快捷。

猜你喜欢

转载自blog.csdn.net/qq_42864422/article/details/105772836