黑马程序员技术交流社区
标题:
匿名内部类
[打印本页]
作者:
不羁的风1230
时间:
2014-5-17 21:31
标题:
匿名内部类
匿名内部类是如何调用它的方法的?能不能同时调用多个方法?调用的格式
作者:
谢振宣
时间:
2014-5-17 22:06
/*
*匿名内部类其实就是一个匿名对象。
*每一个匿名内部类只能够调用一个方法。
*如果需要调用多个方法,可以用多态的方式,将一个父类的引用指向该匿名内部类。
*格式:new 父类名(或接口名)(){需要覆盖的方法}.方法名();
*/
class SuperClass
{
void method()
{
System.out.println("This is the superMothed.");
}
}
class Demo
{
public static void main(String[] args)//此方法中只定义了一个匿名内部类
{
new SuperClass(){
void method()
{
System.out.println("This is the childMothed.");
}}.method();
}
}
//运行结果为:This is the childMethod.
复制代码
作者:
莫问纷飞
时间:
2014-5-17 22:31
楼上解释的很详细
我这儿有两个练习可以参考
interface Inter
{
void show(int a,int b);
void func();
}
class Demo
{
public static void main(String[] args)
{
//补足代码;调用两个函数,要求用匿名内部类
Inter in = new Inter()
{
public void show(int a,int b){}
public void func(){}
};
in.show(3,4);
in.func();
}
}
复制代码
interface Test
{
void func();
}
class Demo
{
public static void main(String[] args)
{
//通过主函数调用show,补足代码;通过(匿名内部类)进行show方法参数传递。
new Demo().show(new Test()
{
public void func(){}
});
}
void show(Test t)
{
t.func();
}
}
复制代码
作者:
屋檐下的期待
时间:
2014-5-18 00:46
/*
匿名内部类
就是内部类的简化写法。
简单理解:
就是建立一个带内容的外部类或者接口的子类匿名对象。
前提:
内部类可以继承或实现一个外部类或者接口
匿名内部类的位置:
局部位置
匿名内部类格式为:
new 外部类名或者接口名(){
//重写父类或者接口的抽象方法
//也可以定义特有的方法
};
*/
interface Inter {
public abstract void show();
public abstract void show2();
}
class Outer {
private int num = 10;
public void method(){
//局部位置
/*
//局部内部类
class Inner {
public void function(){
System.out.println(num);
}
}
*/
/*
//匿名内部类
new Inter(){
public void show(){
System.out.println("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();
*/
//调用匿名内部类特有方法
/*
new Inter(){
public void show(){
System.out.println("show");
}
public void show2(){
System.out.println("show2");
}
public void function(){
System.out.println("funciton");
}
}.function();
*/
/*
发现其实匿名内部类就是一个接口或者外部类的子类对象
学习多态的时候,可以讲 父类引用 指向 子类对象
*/
Inter inter = new Inter(){
public void show(){
System.out.println("show");
}
public void show2(){
System.out.println("show2");
}
};
inter.show();
inter.show2();
}
}
class NiMingInnerClassDemo {
public static void main(String[] args) {
Outer ou = new Outer();
ou.method();
}
}
复制代码
作者:
贾俊锋
时间:
2014-5-18 00:58
学习了,
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2