A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


class Test1 {
        public static void main(String[] args){
               
        }
}
interface Play {
        public abstract void playGame();
}

3 个回复

倒序浏览
6666666666666666666
回复 使用道具 举报
本帖最后由 644186052 于 2017-8-17 23:09 编辑

class Work1 {
        public static void main(String[] args) {
               
/**
        需求一:
                已知接口Play中有一个方法playGame(),再测试类中如何调用该方法?(用匿名内部类实现)

*/
                Outher o = new Outher();
                o.method();
               
        }
}


//接口
interface Play {
        public abstract void playGame();
}


//创建一个类
class Outher  {
        //内部类实现其接口
        class Inner implements Play {
                //重写接口中方法
                public void playGame(){
                        System.out.println("playGame");
                }
        }
       
        //创建普通方法
        public void method(){
                //直接匿名内部类去重写playGame方法。
                new Inner(){  //因为这里相当于是 父类引用指向子类对象,父类即Play,子类Inner, 根据成员方法规则:编译看左(父类),运行看右(子类)。
                        public void playGame(){
                                System.out.println("playGame");
                        }
                }.playGame();
        }
}


回复 使用道具 举报
new Play(){
public void playGame(){
System.out.println("调用方法!")
}
}.playGame();
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马