这两天学了内部类,给人的感觉就是简洁,用老师的话说就是很拽!特别是匿名内部类,甚至不用另外起名字,继承一下名字,定义类体,创建对象,重写方法,一气呵成,用起来非常方便,不过对于他们的认识还是比较感性,来几个例子理一下思路吧!
1 内部类,就是定义在一个类里面的类,可以被很好的封装起来,使外界无法轻易访问,并且内外类之间数据可以共享,内部类和它相应的外部类的关系,打个比方就像母亲和胎儿的关系!
2 匿名内部类,并非无名,直接创建一个类,只为了取得里面方法,写几个代码理一理
1 不使用匿名内部类如何实现抽象类方法
public abstract class Animal {
abstract void eat();
}
class Dog extends Animal{
public void eat(){
System.out.println(“吃东西”);
}
public static void main (String[] args){
Dog dog =new Dog();
dog.eat();
}
}
结果:吃东西
2 看看使用匿名内部类以后如何实现抽象类方法
public abstract class Animal {
abstract void eat();
public static void main(String[] args){
Animal animal=new Animal(){//直接用匿名内部类
public void eat(){
System.out.println("吃东西")
}
};
animal.eat();
}
}
运行结果:吃东西
3 匿名内部类如何快速实现接口
interface Animal{
void eat ();
}
public class Test {
public static void main(String [] args){
Animal animal=new Animal(){
public void eat(){
System.out.println("吃东西")
}
};
animal.eat();
}
}
运行结果:吃东西
总结: 从以上几个例子看出匿名内部类的简洁与方便,在使用中如果接口或抽象类中的方法只需要被使用一次,不妨考虑使用匿名内部类来实现重写,可以节省不少代码,很拽!
个人学习笔记心得,用于整理思路和交流,如有不当之处,还望指正!