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

 

 

 

内部类实现一个接口与外围类实现这个接口的区别

内部类实现一个接口与外围类实现这个接口的区别
  • Syes_lei
  • Syes_lei
  • 2016年08月15日 21:46
  • 920

java中接口内的匿名内部类

什么是接口和匿名内部类接口: java中的接口定义:多个抽象类的抽象就是接口. Java中的接口表示规范,用于定义一组抽象方法,表示某一类事物必须具备的功能,要求实现类必须来实现该接口并...
  • probelover
  • probelover
  • 2016年12月31日 13:03
  • 1082

Java的接口与内部类

接口:主要用于描述类具有什么功能,而不是给出每个功能的具体实现。 一个类可以实现一个或多个接口,并在需要接口的地方,随时使用实现了相应的接口的对象。 克隆对象(深拷贝):指创建一个新对象,且新对象...
  • u014482758
  • u014482758
  • 2015年12月30日 23:22
  • 855

Java—内部类(二)—实现闭包与回调

前言:Java的闭包与回调我也是第二次接触这个概念,之前在自学Android的时候绘制View很多地方都用到了监听器回调,一直不是很明白,现在回头巩固Java的基础总算的弄明白,尽量用我自己理解的语言...
  • yuwenhao07
  • yuwenhao07
  • 2016年12月13日 10:45
  • 900

基于接口实现匿名内部类的注意事项

首先,先看基于接口实现匿名内部类的格式: new ()  { }; 注意:1、new操作符后面跟的是接口名,表明上是创建接口对象,实际上是创建了实现此...
  • wuya112709
  • wuya112709
  • 2016年05月16日 08:14
  • 1662

用java内部类实现多重继承

[java] view plain copy package test;   /**   * class one: Class1   * @author TJ  ...
  • seebetpro
  • seebetpro
  • 2016年07月28日 21:37
  • 850

java内部类回顾之一般内部类实现多继承和封装性

本文的标题可能有一定的误导性,并不是说一般内部类就能实现多继承,显然这是不可能的。真正的意思是通过多继承来实现我们期望中的多继承的功能。 这里就拿人类来举例吧,人(Person)是一种生物(biolo...
  • puhaitao1987
  • puhaitao1987
  • 2014年12月29日 14:24
  • 772

Java基础课程-接口、内部类、回调函数讲解

Java
  • redarmy_chen
  • redarmy_chen
  • 2016年08月03日 17:36
  • 1248

Java中:接口,抽象类,内部类

接口,抽象类,内部类
  • sinat_18268881
  • sinat_18268881
  • 2016年03月09日 16:54
  • 699

Java通过内部类实现回调功能

一个类,因为不方便直接修改内部的属性,所以可以通过回调的方式来进行。 public class Animal { private int weight; public int getWeight...
  • ziwen00
  • ziwen00
  • 2013年04月23日 11:20
  • 1203
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA学习4——内部类实现接口 未完成
举报原因:
原因补充:

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