新手求帮助下面一段讲解关于包和接口的讲解–

J2EE 码拜 8年前 (2016-01-31) 775次浏览
新手求帮助下面一段讲解关于包和接口的讲解,没看明白。
既然 class MammalInt里面已经包含  eat();和 travel();了,那么前面定义接口interface Animal {还有什么作用呢?
另外这个例子哪里体现出包的优越性了?谢谢

让我们来看一个例子,这个例子创建了一个叫做animals的包。通常使用小写的字母来命名避免与类、接口名字的冲突。
在animals包中加入一个接口(interface):
/* 文件名: Animal.java */
package animals;
interface Animal {
   public void eat();
   public void travel();
}
接下来,在同一个包中加入该接口的实现:
package animals;
/* 文件名 : MammalInt.java */
public class MammalInt implements Animal{
   public void eat(){
      System.out.println("Mammal eats");
   }
   public void travel(){
      System.out.println("Mammal travels");
   } 
   public int noOfLegs(){
      return 0;
   }
   public static void main(String args[]){
      MammalInt m = new MammalInt();
      m.eat();
      m.travel();
   }
} 
然后,编译这两个文件,并把他们放在一个叫做animals的子目录中。 用下面的命令来运行:
$ mkdir animals
$ cp Animal.class  MammalInt.class animals
$ java animals/MammalInt
Mammal eats
Mammal travel
解决方案:25分
Animal  animal =new MammalInt ();可以这样用的呀。实现接口,算是一种规范吧
解决方案:30分
楼上说的是 ,用接口的目的 ,就是为了实现多态,另外对于协作开发,就可以不要考虑别人的实现类具体什么样,只要用接口定义类对象就可以了。
解决方案:45分
1.接口: 假设有一天你想养只狗,你是不是需要提前思考,要不要给他喂食,有没有时间遛狗,怎么样计划卫生。
在这个过程中,你还不明确具体要那种品种的狗。那么你的思维方式就是共性思维,先思考要养狗的大致环节,然后再去想,本人买一只什么样的狗呢?
你看,这就是先接口后,后实现。这个顺序很重要,原因是在没有具体实现的情况下,你的思维能进行下去。没有人会一开始就想,本人要养一只1周岁的,金发的,5公斤的泰迪吧。
2. 包:这个问题更好说了,你写了一个类叫Animal,那天本人也想写各类叫Animal。然后本人觉得你写的好,想把你的类引入进来,假如没有包的话,这个时候会面临什么问题?类名冲突了,本人初始化一个Animal,jvm不知道是哪个。包在项目里面其实就是文件夹,假如我们都把各自的类放在本人的文件夹下面。那么本人说,本人要实现本人写的Animal类,并且让他基础你写的Animal,是不是就不冲突了?
可能你觉得,本人引用你的类的可能性不大,但是市场上那么多开源项目,你是不是会经常引用,不加包名的话,类名冲突了怎么办?

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明新手求帮助下面一段讲解关于包和接口的讲解–
喜欢 (0)
[1034331897@qq.com]
分享 (0)