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

原创 2011年03月22日 21:31:00

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月03日 11:03
  • 19KB
  • 下载

Java学习总结4——继承1(内部类的作用和用法)

出处:http://blog.csdn.net/zhaoqianjava/article/details/6849812 内部类,计算机面向对象程序设计概念。向对象程序设计中,可以在一个类的...

黑马程序员——4.继承(接口、多态、内部类、异常、包)

Java继承(接口、多态、内部类、异常、包)

Java核心技术:卷1笔记[4] 接口和内部类

1.接口中的任何方法都自动是public类型的,无需提供public关键字。不能在接口中放置静态方法,接口中也绝不会去实现方法。在实现接口时必须把方法声明为public。 2.接口中可以提供常量。 ...

【黑马程序员】 java笔记——接口与内部类

---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ---------------------- 接口与内部类 一、接口 ...

黑马程序员——java基础(面向对象)抽象、接口、内部类

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 第五章:面向对象(抽象、接口、内部类)   本章概述: 第一部分:抽象  抽象描述 抽...

Java核心技术——接口和内部类

一、接口 1.接口不是类,是对类的一组需求描述 2.接口可以定义常量(自动设置为public static final),不能含有实例域,也不能在接口中实现方法,因此可以将其看成没有实例域的抽象类 3...

黑马程序员——Java面向对象之抽象类 接口 内部类笔记

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 三, 抽象类概述: 在Java中,一个没有方法体的方法应该定义为抽象方法, 而类中如果...

黑马程序员Java笔记——抽象类、接口、内部类(拾遗补录)

----------- android培训、java培训、java学习型技术博客、期待与您交流! --------- 拾遗补录: 面向对象与面向过程: (1)面向对象与面向过程的区别,以及有哪些编程...

java基础第六讲——抽象类、接口、内部类、常用类、异常、IO流

目录抽象类 接口 内部类 常用类 异常 IO数据流 抽象类abstract 抽象类:不一定有抽象方法,但有抽象方法的一定是抽象类。 抽象方法:只有方法名,没有方法体抽象类不能new出一...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA学习4——内部类实现接口 未完成
举报原因:
原因补充:

(最多只允许输入30个字)