小说网站 搜小说 无限网 烟雨红尘 小说爱好者 免费小说 免费小说网站

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

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() { //接口的实现子类的对象给接口,多态
			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("好好学习,天天向上");
            }
        });
    }
}

posted on 2016-05-08 18:25  王小航  阅读(146)  评论(0编辑  收藏  举报

导航