匿名类

匿名类

• 和子类有关的匿名类: Java允许我们直接使用一个类的子类的类体

创建一个子类对象。创建子类对象时,除了使用父类的构造方法外
还有类体,此类体被认为是一个子类去掉类声明后的类体,称作匿
名类。

abstract class OuterAlphabet {//抽象类
    public abstract void output();//抽象方法
}
class OutputEnglish extends OuterAlphabet {//抽象类的实现
    public void output() {
        for(char c='a';c<='z';c++) {//只能输出英文字母
            System.out.print(c+" ");
        }
    }
}
class ShowBoard {
    void showMess(OuterAlphabet show) {//showMess方法接收OuterAlphabet的子类
        show.output();
    }
}
public class TestAnonymousClass_inhert {
    public static void main(String[] args) {
        ShowBoard board=new ShowBoard();
        
        board.showMess(new OutputEnglish());//输出英文字母
        System.out.println();

        board.showMess(new OutputEnglish() {
            public void output() {//重写output方法方法,继承式
                for(char c='α';c<='ω';c++) {
                    System.out.print(c+" ");
                }
            }
        });

    }
}

转自:
https://www.baidu.com/link?url=EslEaGMa—qLF2TJ9fo9hOIdQdrzWWtSCz7TDoYwG36DB2lF8rnHHyS1FGVZl73tszxVzih5orRALCPhFQQvYME_1PvS7e_gpw1wmeRV_e&wd=&eqid=d27405fc00037245000000065e364385

• 和接口有关的匿名类:假设Computable是一个接口,那么,Java

允许直接用接口名和一个类体创建一个匿名对象,此类体被认为是
实现了Computable接口的类去掉类声明后的类体,称作匿名类

interface Animal{
    void speak();
}
class fowl{
    public void say(Animal hello){
        hello.speak();
    }
}
public class Application{
    public static void main(String Args[]){
        fowl  machine=new  fowl();

        machine.say(new Animal(){
            public void speak(){
                System.out.println("pig");
            }
        });

        machine.say(new Animal(){
            public void speak(){
                System.out.println("dog");
            }
        });
    }
}


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值