您的位置:首页 > 职场人生

《黑马程序员》java笔记->【03】接口和抽象类的区别

2013-02-04 12:45 363 查看
  

------- android培训java培训、期待与您交流! ----------

/**

接口和抽象类的区别:

class

class Demo35

{

 public static void main(String[] args)

 {

  System.out.println("hello world!");

 }

}

1:接口的出现降低了耦合性,紧密联系降低了

2:接口的出现提高了扩展性

3:接口就是对外暴露的规则。

举例:笔记本电脑的USB插口。

接口定以后,一方在使用这个接口,另一方负责实现这个接口

所以接口的出现降低了两方的耦合行

//

接口和抽象类的区别:

1:类是用来继承的,只能单继承

   接口是用来实现的,可以多实现

2:类中可以定义非抽象内容,直接提供子类使用

   接口中只能定义抽象方法,需要子类全部实现

3:类存在着继承关系,是is a 关系

   接口的实现关系,是like a 关系

共同点:

    他们都是不断抽取而来的

举例:

    描述犬。

           分类:导盲犬,搜暴犬。

abstract class 犬

{

 abstract void 吼叫();

}

abstract class 搜暴

{

 abstract void 搜暴();

}

class 搜暴犬 extends 犬,搜暴  //出现错误,类不能多继承

{

 

}

*/

interface 犬

{

 public static abstract void 吼叫();

}

interface 搜暴

{

 public static abstract void 搜暴();

}

class 搜暴犬 implements 犬,搜暴

{

 public void 吼叫(){}

 public void 搜暴(){} 

}

犬中有一些吃饭睡觉共性内容而且是不需要抽象的。

所以犬应该用class来定义

抽象类:定义基本功能

接口  :定义扩展功能

abstract class 犬

{

 public void eat(){}

 public abstract void 吼叫();

}

interface 搜暴able

{

 public static abstract void 搜暴():

}

class 搜暴犬 extends 犬 implements 搜暴able

{

 public void 吼叫(){}

 public void 搜暴(){}

}

class 搜暴猫 extends 猫 implements 搜暴able

{

 public void 搜暴(){}

}

//在不同的问题领域中分析问题也有不同

class Student

{

 void study()

}

inteface Smoke

{

 public static abstract void smoking();

}

class SmokeStudent extends Student implements Smoke

{

 public void smoking(){}

}

//烟民中

class SmokeMan

{

 void smoke(){}

}

interface Study

{

 public static abstract void study();

}

class SmokeStudent extends SmokeMan implements Study

{

 public void study(){}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: