内部类四

package com.neibulei;

/**

  • 匿名内部类 没有名字的内部类
  • 1.必须实现一个接口或者继承一个抽象类
  • 2.匿名内部类不能创建对象 只能使用一次
  • 3.优点:减少子类的编写
  • 4.缺点:阅读性较差
  • 5.通常用于接口或者抽象类中只有一个抽象方法的情况
  • @author WHD

*/
public class Test4 {
public static void main(String[] args) {
// Info info = new InfoImpl();
// info.print();

	//重写接口的方法
	//匿名内部类是没有名字的,所以我们没办法用其类名创建实例
	//这里创建的是实现此接口子类的对象,因为没有名字,只能直接写接口名,
	//接口名的作用只表明创建的对象是Info接口类型,
	//接口不能创建对象,只能通过其子类实例向上转型的方式
	//本句是创建一个Info接口类型的匿名类的对象,这种方式匿名类自动实现Info接口,是Info接口子类
	Info info = new Info() {
		
		//重写接口方法
		@Override
		public void print() {
			System.out.println("通过匿名内部类的方法实现接口");
		}

		//重写接口方法
		@Override
		public void m1() {
			System.out.println("m1方法");
		}

		//重写接口方法
		@Override
		public void m2() {
			System.out.println("m2方法");
		}
		
	//下面的分号是创建对象语句的结束符,例:A a=new A(); 和匿名内部类无关,类末尾大括号后面不需要分号
	};
	
	//调用匿名类方法
	info.print();
	
	
	//匿名内部类是没有名字的,所以我们没办法用其类名创建实例
	//这里创建的是继承此类的对象,因为没有名字,只能直接写父类名,
	//父类名的作用只表明创建的对象是A类类型,
	//抽象类不能创建对象,只能通过其子类实例向上转型的方式
	//本句是创建一个A类类型的匿名类的对象,这种方式匿名类自动继承A抽象类,是A抽象类子类
	A a = new A() {

		//重写方法
		@Override
		public void m1() {
			System.out.println("通过匿名内部类的方式实现抽象类");
		}
		
	//下面的分号是创建对象语句的结束符,例:A a=new A(); 和匿名内部类无关,类末尾大括号后面不需要分号
	};	
	
	//new Runnable(){}是创建一个Runnable接口类型的匿名类的对象,这种方式匿名类自动实现Runnable接口,
	//是Runnable接口子类
	//一个类实现Runnable接口,重写run方法并创建对象,
	//Thread类 创建对象并接受实现Runnable接口类的对象传参
	//Thread类对象调用start方法开启线程,本处匿名类是实现Runnable接口的匿名子类
	Thread t1 = new Thread(new Runnable() {
		
		@Override
		public void run() {
			System.out.println(Thread.currentThread().getName() + "线程的内容");
			
		}
		
		//设置线程名字
	}, "线程A");
	
	//启动线程
	t1.start();
	
}

}

interface Info{
void print();
void m1();
void m2();
}

//class InfoImpl implements Info{
//
// @Override
// public void print() {
// System.out.println(“接口方法打印信息”);
// }
//
//}

abstract class A{
public abstract void m1();
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值