抽象类与接口的区别

/*
抽象类与接口的区别
*/
//犬类,缉毒类,缉毒犬类
/*
abstract class 犬{
 abstract void 吃();
 abstract void 叫();
}
interface 犬{
 abstract void 吃();
 abstract void 叫();
}
class 缉毒犬  extends 犬{
 void 吃();
 void 叫();
 void 缉毒();
}
class 缉毒犬  implements 犬{
 void 吃();
 void 叫();
 void 缉毒();
}
缉毒犬是犬中的一种,is a关系
犬用于描述所有功能犬的基本功能,用class定义,父类。
所以犬不适合定义成接口。
class 缉毒猪{
 void 缉毒(){}
}
具备缉毒功能的有很多,缉毒功能需要抽取。抽取到类中,还是抽取到接口中?
先试试定义类。
abstract class 缉毒{
 abstract void 缉毒();
}
不行,缉毒犬继承犬类,就不能继承其他类。
定义成接口试试。
interface 缉毒{
 abstract void 缉毒();
}
class 缉毒犬 extends 犬类  implements 缉毒{
 void 吃(){}
 void 叫(){}
 void 缉毒(){}
}
这是可行的。
**************************
*类用于描述是事物的共性基本功能。    *
*接口用于定义的都是事物的额外功能。*                     重点!!!
**************************
抽象类和接口的区别?
1.类与类之间是继承关系,is a
     类与接口是实现关系,    like a
2.抽象类中可以定义抽象和非抽象方法,子类可以直接使用,或者覆盖使用。
     接口中定义的都是抽象方法,必须实现了才能用。
*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值