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

  

-------  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(){}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值