很多初学者在理解接口和抽象类的区别的时候总是会混淆不清两者之间的区别,本人当然也是,于是乎,看着网上的教程说接口好,于是,滥用接口就开始了,完全抛弃抽象类的存在
其实不用一味的去理解他们之间的区别,他们之间有什么区别? 非要深入知道么,只要回答一个类可以实现多个接口却只能继承一个抽象类就可以了,没任何意义,本人觉得问这个问题的人就存在问题,应该这么问:接口用在哪里,抽象类又用在哪里,这样就比较好理解了
首先来看下这张图
从这张图上我们可以总结关键性几点
1.抽象类是一组具有同一类型的实体类的共有部分的提取
2.接口不关心实现它的实体类是否是同一类型,一只鸟和一架飞机都可以实现飞的接口,虽然它们八不着边
3.如果同一类型具有同一行为,那么应该考虑抽象类,如果不同类型具有同一行为,那么应该考虑接口
4.设计一个接口不应该偏向某一类型,否则会造成实现这个接口的其他类型必须实现不必要的方法
5.如果接口和抽象类存在冲突,应该首先考虑接口,也就是说把飞的方法放到接口里而不是抽象类里
下面看一个小实例
设计一只海鸥和一架波音飞机
由于这两个东西都能飞,首先我们设计一个接口
//能在天上飞的接口
public interface IFly
{
void fly();
}
设计到了两个类,鸟和飞机,我们也可以把他们抽象出来
//飞机的抽象类
public abstract class Phone
{
//获取载客量
abstract int getPassengerCount();
}
//鸟的抽象类
public abstract class Bird
{
//获取性别 O__O
abstract int getAge();
}
然后把鸟生出来再把飞机造出来
//海鸥
public class Seagull extends Bird implements IFly
{
public int getAge()
{
//公的母的你说了算 O(∩_∩)O哈哈~
}
public void fly()
{
//飞喽~~
}
}
//波音
public class Boeing extends Phone implements IFly
{
public int getPassengerCount()
{
//最少得能坐上七八个吧
}
public void fly()
{
//各位旅客,飞机已经起飞,请坐稳扶好
}
}
可以根据接口和抽象类写出更多鸟和飞机(造个骆驼就无能为力了)
最后自己总结:可以不用接口抽象类,但不要拿接口当抽象类,可以不OOP 但不要乱OOP
注:以上纯粹个人观点,如果大牛认为哪些不正确的话非常希望留下您的意见,谢谢了
分享到:
相关推荐
本文主要介绍了Java面向对象编程的基本概念和原则,包括对象、类、继承、多态、封装、抽象等概念的定义和解释,并通过实例讲解了面向对象编程的思想和方法。 一、什么是对象? 在面向对象编程中,对象是最基本的...
面向对象编程思想的主要特点是高内聚、低耦合,能够使系统各部分各司其职、各尽所能。 类和对象的概念 在JAVA中,类是对象的抽象,类是对象的模板,对象是类的实例。对象有两个方面:属性(what)和方法(how)。...
其次,采用面向对象方法可以使系统各部分各司其职、各尽所能。 对象之间的耦合性一定要低(比如不同硬盘和不同主板之间的关系)。这样才能使每个对象本身做成最好的。 对于对象的要求:高内聚、低耦合,这样容易...
- 公平有助于整个社会的持续发展,使每个成员都能各司其职,各尽所能,各得其所。 3. 理智面对社会生活中的不公平: - 公平总是相对的,受限于社会条件,不公平现象难以完全避免。 - 面对不公平,我们要理性看待...
这其中包括特质-因素理论,强调个人特质与职业需求的匹配,如西邻公五子的例子,各尽所能,各司其职。此外,还有择业动机理论,认为职业选择受个人的职业价值观和职业要素评估影响,以及社会学习理论,关注环境和...
这表明,有效的团队管理不仅要关注关键人物,还要关注每一个成员的成长和发展,使团队成员各尽所能,共同进步。 在实际工作中,我们可以借鉴《西游记》的教训,设定清晰的团队目标,培养团队精神,明确角色定位,...
【国立中山大学企业管理学系二年制在职专班】的学习内容主要涵盖了组织绩效提升的途径、工作绩效的分类、组织绩效的成功策略以及激励理论等多个方面,旨在帮助在职人员提升管理能力和组织效率。 一、工作绩效提升的...
公平的感受能够促进社会各阶层人员各司其职,各尽所能,各得其所,这有利于社会资源的有效配置,推动社会整体的进步。同时,公平的环境可以降低社会冲突,维护社会稳定,为国家的繁荣和发展提供良好的社会基础。 ...
领导者应该"以不能为能",即自身不必精通所有事务,但要擅长识别和使用人才。 2. 帝王用人术:历史上成功的领导者如刘邦,懂得如何运用人才,让每个人发挥其所长。例如,刘邦的团队中,张良负责战略,萧何处理后勤...
在这个社会里,人们选举贤能之人治理国家,强调诚信和和睦,每个人都能够各司其职,各尽所能。这里的“大同”社会体现了儒家的公平、和谐、共享的价值观,是对社会公正和人类理想的向往。 在学习这篇文章时,学生...
(2) 对社会整体,公平有助于形成人人各司其职、各尽所能、各得其所的局面,进而推动社会持续发展,有利于社会的长治久安。 3. 如何理智地面对生活中的不公平: (1) 需要认识到公平是相对的,我们无法消除所有不...
- 对于社会整体而言,公平有助于社会资源的有效分配,使每个人都能各司其职,各尽所能,各得其所,进而推动社会的持续稳定发展。 2. 公平就业的意义: - 公平的就业机会对于大学生至关重要,因为它不仅关乎个人的...
这在个人层面体现为理智、激情和欲望三者的合理分配与协调,在城邦层面则体现为城邦中不同阶层和公民根据天赋和能力,各司其职,共同维护整个社会的和谐与正义。 柏拉图的这一理论,同样可以在其他哲学家的思想中...
1.面向对象的概念 面向对象编程(Object ...其次,采用面向对象方法可以使系统各部分各司其职、各尽所能。为编程人员敞开了一扇大门,使其编程的代码更简洁、更易于维护,并且具有更强的可重用性。有人说PHP 不是一个
这类游戏通常会涉及到多方面的技能和能力,如解决问题的能力、时间管理、团队协调和领导力等。在游戏过程中,每个团队成员都应发挥个人优势,通过有效沟通和协作,共同完成任务。这类游戏有助于发现团队中的潜在能力...
1. 创建班集体:创建新集体的核心在于设定共同目标,让每个成员都能各尽所能,发挥所长,并通过团结协作互相支持。这有助于培养学生的团队精神和协作能力。 2. 学习方法与学习的苦与乐:学习是既有挑战也有乐趣的...
正确的态度应该是将竞争转化为合作,通过互相学习、共同进步,使得班级的整体表现得到提升。 6. **班级文化的建设**: 通过设立班级目标,培养良好的学习习惯和行为规范,可以塑造独特的班级文化。班级文化是班级...
3. **各尽所能,发挥所长**:每个成员都应该根据自己的特长和能力,为集体做出贡献。这样既能提高集体的整体效能,也能帮助个人实现自我价值,促进个人全面发展。 4. **团结协作**:团结协作是集体成功的关键,成员...
7. **建立新友谊**:面对新环境和孤独感,王玲应该主动去认识新同学,结交新朋友,而不是寻找熟悉的老同学,这样才能更好地融入新集体。 8. **团队合作的方向与目标**:故事中梭子鱼、虾和天鹅拉车的例子说明,没有...