JAVA学习4——内部类实现接口 未完成

interface Animal  //接口是不能实例化一个对象的,如:new Animal

{

       void eat();

       void sleep();

}

 

class Zoo

{

       private class Tiger implements Animal//实现了接口,就要实现接口中所有的抽象方法

       {

              public void eat()

              {

                     System.out.println("tiger eat");

              }

              public void sleep()

              {

                     System.out.println("tiger sleep");

              }

       }

       Animal getAnimal()//定义一个方法,返回类型是Animal

       {

              return new Tiger();//可以用实例化的对象作为Animal的返回值。

       }

 }

 

class Test

{

       public static void main(String[] args)

       {

              Zoo z=new Zoo();//产生一个动物园的对象

              Animal an=z.getAnimal();//获取一个动物

              an.eat();

              an.sleep();

       }

}

 

 

内部类实现一个接口,利用接口定义一个变量an,再通过Zoo的一个内部类Tiger实现了这个接口,去获取一个动物对象。然后调用接口当中的吃和睡觉方法。

 

 

 

interface Animal

{

       void eat();

       void sleep();

}

 

class Zoo

{

       private class Tiger implements Animal //Tiger这个类为private 这样就不能在Zoo外部被访问了。只能通过接   

                                                                  口 来获取Tiger这个类的对象。z.getAnimal();返回到Tiger,获取方法。

             

       {

              public void eat()

              {

                     System.out.println("tiger eat");

              }

              public void sleep()

              {

                     System.out.println("tiger sleep");

              }

       }

       Animal getAnimal()

       {

              return new Tiger();

       }

       /*Animal getAnimal()       {

              return new Animal()  //返回的对象是匿名的内部类对象

 

                                               //class AA 内部类

                   {                            //其实是定义了一个类,匿名的内部类。

 

                     public void eat()

                     {

                            System.out.println("animal eat");

                     }

                     public void sleep()

                     {

                            System.out.println("animal sleep");

                     }

                    };  分号不能少!

       }*/

}

 

class Test

{

       public static void main(String[] args)

       {

              Zoo z=new Zoo();

              Animal an=z.getAnimal();

              an.eat();

              an.sleep();

       }

}

 

 

 

 

为什么要用内部类呢?

 

n 我们为什么使用内部类
1、在内部类(inner class)中,可以随意的访问外部类的成员,这可以让我们更好地组织管理我们的代码,增强代码的可读性。 (外部要访问内部类的成员,要先产生内部类的对象,然后利用这个对象引用内部类的成员)
2、内部类可以用于创建适配器类,适配器类是用于实现接口的类。使用内部类来实现接口,可以更好地定位与接口关联的方法在代码中的位置。
3、内部类的更多用法。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值