ITKeyword,专注技术干货聚合推荐

注册 | 登录

《java入门第一季》之面向对象(匿名内部类)

qq_32059827 分享于 2016-05-08

推荐:《java入门第一季》之面向对象(面向对象案例详解)

通过几个小案例理重新回顾一下前面所写的内容,对面向对象的理解更加深刻的目的: 案例一: /* 需求: 定义一个员工类,自己分析出几个成员, 然后给出成员

2020腾讯云共同战“疫”,助力复工(优惠前所未有!4核8G,5M带宽 1684元/3年),
地址https://cloud.tencent.com/act/cps/redirect?redirect=1053

2020阿里云最低价产品入口,含代金券(新老用户有优惠),
地址https://www.aliyun.com/minisite/goods

1、认识匿名内部类

/*
	匿名内部类
		就是内部类的简化写法。

	前提:存在一个类或者接口
		这里的类可以是具体类也可以是抽象类。
	
	匿名内部类的格式:
		new 类名或者接口名(){
			重写方法;
		};这代表的是一个子类对象
		
	本质是什么呢?
		是一个继承了该类或者实现了该接口的子类匿名对象。
*/
interface Inter {
	public abstract void show();
	public abstract void show2();
}

class Outer {
	public void method() {
		//接口里面只有一个方法的时候,只有show()
		/*
		new Inter() {
			public void show() {//在匿名内部类里面重写接口或者抽象类的方法。
				System.out.println("show");
			}
		}.show();
		*/
		
		//二个方法的时候
		/*
		new Inter() {
			public void show() {
				System.out.println("show");
			}
			
			public void show2() {
				System.out.println("show2");
			}
		}.show();
		
		new Inter() {
			public void show() {
			        System.out.println("show");
			}
			
			public void show2() {
				System.out.println("show2");
			}
		}.show2();
		*/
		
		//如果很多个方法,就很麻烦了.所以选择使用参数接收这个对象,然后使用对象调用方法就可以了。
		Inter i = new Inter() { //接口的实现子类的对象给接口,

推荐:《java入门第一季》之面向对象(static关键字)

/* static的特点:(它可以修饰成员变量,还可以修饰成员方法) A:随着类的加载而加载 回想main方法。 B:优先于对象存在 C:被类的所有对象共享 举例

多态 public void show() { System.out.println("show"); } public void show2() { System.out.println("show2"); } };//注意这里的分号 i.show(); i.show2(); } } class InnerClassDemo6 { public static void main(String[] args) { Outer o = new Outer(); o.method(); } } 2、匿名内部类在开发中的使用 通过一个案例简单演示: interface Person {     public abstract void study(); } class PersonDemo {     public void method(Person p) {//这种方式,在前面介绍参数类型是引用类型的时候已经介绍过了。 //见博客(http://blog.csdn.net/qq_32059827/article/details/51344046)         p.study();     } } //实现类 class Student implements Person {     public void study() {         System.out.println("好好学习,天天向上");     } } class InnerClassTest2 {     public static void main(String[] args) {         //测试         PersonDemo pd = new PersonDemo();         Person p = new Student();         pd.method(p);         System.out.println("--------------------");                  //匿名内部类在开发中的使用        //结果和上面一模一样,使用匿名内部类的方式,可以节省内存空间。使用场景,方法比较少的时候使用。         pd.method(new Person(){             public void study() {                 System.out.println("好好学习,天天向上");             }         });     } }

推荐:《java入门第一季》之面向对象面试题(面向对象都做了哪些事情)

创建对象内存图解。

1、认识匿名内部类/* 匿名内部类 就是内部类的简化写法。 前提:存在一个类或者接口 这里的类可以是具体类也可以是抽象类。 匿名内部类的格式: new 类名或者接口名(){ 重写

相关阅读排行


相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。