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、内部类的更多用法。

 

 

 

阅读更多
想对作者说点什么? 我来说一句

Java 接口 内部类

2011年08月05日 205KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭