我也是刚开始学,不知道这个可以不,我们老师当时举的例子:
匿名内部类是最特殊的,它没有自己的名字,如果想要使用该类的实例,只能通过"借尸还魂"来实现;匿名内部类,必须是某个类的子类或者某个接口的实现类,一般以匿名内部类的父类类名,或者它所实现的接口的名字为"尸",名字后面的 { } 即为内部类的类体,也就是"魂";
public class Computer {
//class body
}
对于 Computer 可以使用下面的方式得到一个对象
Computer sub = new Computer(){
//这里是匿名内部类的类体(这个匿名内部类是Computer 类的一个子类)
};
以上代码,相当于
class SubComputer extends Computer{ }
Computer sub =new SubComputer();
首先,克隆对象是很有必要的,当一个对象需要被多人操作,但是又不想相互影响,需要保持原对象的状态,这时,就会克隆很多个相同的对象,每人发一个,让他们改去吧,呵呵。
内部类就是类中类,分为静态内部类,成员内部类,局部内部类,匿名内部类。
楼主可以 把静态内部类当做静态属性来看,成员内部类当做成员属性来看,只不过它们同时具备类的特性,而且可以访问外部类的私有成员。
另外,局部内部类写在方法里面,这个是真的用的很少,几乎不用。
而用的最多的是匿名内部类,因为很方便,例如有一个接口 Interface A{
public void method();
}
这时你可以写一个如下的语句得到接口A的实现类的对象
A a=new A() };
上面这个表达式等号右边就是一个匿名内部类,事实上它是一个没有名称的接口A的实现类。
以上皆是原创回答,一个字一个字敲上去的。大概就是这样的,楼主还可以找相关资料看一下。
楼主明白了吗?
匿名内部类:意思是说在class类中的某方法重写,重载,外部的一些类的方法;就好像 继承父类的一些方法是,不一定每个子类都适合该方法,需要在自己内部对该方法进行修改和重写,从而实现自己的方法
内部类就是在一个类的内部重新写的一个类,这个类,不能被外部的类访问,但是这个类,可以访问外部的类的属性及方法。