package cn.hpu.test;
//import cn.hpu.anonymous.Man;
import cn.hpu.anonymous.Person;
//import cn.hpu.anonymous.Women;
public class PersonTest {
// //根据传入类型的不同,调用不同的方法
// //方案一:创建getRead方法
// public void getRead(Man man) {
// man.read();
// }
// public void getRead(Women women) {
// women.read();
// }
//方案二:多态
public void getRead(Person person) {
person.read();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
PersonTest person=new PersonTest();
// Man one=new Man();
// Women two=new Women();
//
// person.getRead(one);
// person.getRead(two);
//
//方案三:匿名内部类:实例化对象的同时完成对对象内容的重写
person.getRead(new Person() {
@Override
public void read() {
// TODO Auto-generated method stub
System.out.println("男生爱看科幻小说");
}
});
person.getRead(new Person() {
@Override
public void read() {
System.out.println("女生爱看言情小说");
}
});
}
}
匿名内部类知识点:
1.匿名内部类没有类型名称,没有实例对象名称,
* 2.匿名内部类编译后文件的命名:外部类$数字.class
* 3.无法用private,public, protected,static,abstract修饰
* 4.无法添加构造方法,可以添加构造代码块
* 5.不能出现静态成员,也不能出现抽象方法
* 6.匿名内部类可以实现接口,也可以继承父类,但二者不可兼得。