`
XiAoOMAn07
  • 浏览: 75687 次
  • 性别: Icon_minigender_1
  • 来自: 温州
社区版块
存档分类
最新评论

基类和接口

阅读更多
接口在java编程中有极大的作用,对团队来说,更是不可或缺的部分。
接口中的方法往往是“哑”方法,即,在接口中,只有方法的声明,没有方法的具体实现。

接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法。
复用代码的其中一种形式是 客户端程序员遵循该接口来编写他们自己的类。
关键字的使用以及语法:


Java中的多重继承

interface CanFight{
void fight();
}
interface CanSwim{
void swim();
}
interface CanFly{
void fly();
}
class ActionCharacter{
public void fight{}
}
class Hero extends ActionCharacter implements CanFight,CanSwim,CanFly{
public void swim(){}
public void fly(){}
}


CanFight 接口与ActionCharacter类中的fight()方法的特征签名是一样的,而且,在Hero中并没有提供fight()的定义。可以扩展接口,但是得到的只是另一个接口。当想创建对象时,所有的定义首先必须都存在。及时Hero没有显式的提供fight()的定义,其定义也因ActionCharacter而随之而来,这样就使得创建Hero对象成为了可能。
(例子摘自 P179)


“确定接口是理想选择,因而应该总是选择接口而不是具体的类”。
对于创建类,几乎在任何时刻,都可以替代为创建一个接口和一个工厂(工厂在p187)。
任何抽象性都应该是应真正的需求而产生的。当需要时,你应该重构接口而不是导出添加额外级别的间接性,并由此带来的额外的复杂性。
最恰当的原则是选择类而不是选择接口。从类开始,如果接口的必须行变得非常明确,那么就进行重构。接口是一种重要的工具,但是最好不要滥用。


分享到:
评论

相关推荐

    Servlet的基类和接口中的方法总结

    ### Servlet的基类和接口中的方法总结 #### 1. javax.servlet.Servlet接口 Servlet接口是Java Web开发中非常重要的组成部分,它定义了Servlet类需要实现的一系列生命周期方法,包括初始化、服务请求处理以及销毁等...

    21-05-16_Nop4.4(006_使用EFCore5中间件来定义数据库下文和泛型来定义实体及其属性映射规则类的基类和接口,默认被正常启动).rar

    本篇将详述如何使用EFCore 5来定义数据库上下文,以及如何通过泛型定义实体及其属性映射规则的基类和接口,以便在默认情况下实现系统启动。 首先,数据库上下文(DbContext)是EFCore的核心组成部分,它代表了应用...

    PHP网站系统核心基类和接口库.zip

    软件开发设计:应用软件开发、系统...云计算与大数据:包括云计算平台、大数据分析、人工智能、机器学习等,云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。

    C#基类整理C#比较全的基类集合

    以上只是C#基类中的冰山一角,实际上,.NET框架提供了大量的基类和接口,涵盖各种功能,如网络通信、XML处理、数据访问、并发控制等。通过深入学习和理解这些基类,开发者可以更高效地编写出健壮且可维护的C#代码。...

    列举所有的进程基类(107KB)

    标题中的“列举所有的进程基类”指的是在编程中与操作系统进程管理相关的基础知识,...在设计多进程应用程序时,理解这些基类和接口至关重要,因为它们能帮助避免竞态条件、死锁等并发问题,保证程序的正确性和可靠性。

    第7章继承和接口设计习题[借鉴].pdf

    15. **接口的特性**:一个类可以有多个基类和接口,但接口不能有成员实现;抽象类和接口都不能直接实例化;接口可以多继承,类不能。 16. **方法隐藏示例**:在给定的代码中,Derived 类重写了 Base 类的 `Hello()`...

    php微信公众号接口基类.zip

    微信公众号接口基类 微信API 公用方法 微信接口默认常量值 只有配置错误才再次抛出异常

    C++虚函数多态和纯虚函数多态的经典示例源码

    多态性主要通过虚函数(Virtual Functions)来实现,而纯虚函数(Pure Virtual Functions)则进一步扩展了这种机制,为创建抽象基类和接口提供了可能。下面我们将深入探讨这两个概念以及它们在实际编程中的应用。 ...

    API接口验证基类(thinkphp)

    1. 基类定义:创建一个基类,通常命名为`ApiBaseController`,这个类将包含所有API接口共用的验证方法和逻辑。在ThinkPHP中,我们可以通过继承`Controller`类来开始我们的基类。 2. 验证规则:定义验证规则,这可以...

    软件可扩展性实践.ppt

    例如,抽象基类和接口可以定义公共的接口,而具体的实现则可以通过继承或实现这些接口来扩展。 以物流体系测试仪器产品的案例为例,项目组开发了VAT.NET软件平台,通过模块化设计,将测试仪上位机软件的共有模块...

    非常优秀的棋牌类游戏源码,包含AI及机器人的难度调节算法

    指令集及游戏各对象都提供了基类和接口,基于本平台开发,很多类可以直接继承. 3,优秀的UI设计,不使用DirectX,但却能够将可视化效果发挥到极致,优秀的可视化图元基类设计,仅需继承 4,强大的AI人工智能设计,并提供了...

    testPlugin.zip

    2. **抽象公共库**:在设计插件系统时,通常会创建一个公共库,定义插件接口和通用功能。这样,各个插件都可以继承或实现这些接口,保证了统一的数据交换和交互方式。抽象公共库可能包含基类和接口定义,如`...

    C面向对象编程习题.doc

    - d) 错误,抽象基类和接口有明显的区别,它们不是同一概念。 因此,答案是a。 4. **设计模式**:在设计系统时,采用继承可以更好地符合开闭原则,即对扩展开放,对修改关闭。如果需要增加新的类(如杂志),应...

    Android-recyclerview封装基类适配器和基类holder以及分割线使用

    本项目主要探讨如何对RecyclerView进行封装,创建基类适配器(Adapter)和基类ViewHolder,以及如何添加分割线(Divider)来增强用户体验。 首先,RecyclerView.Adapter是连接数据源和视图的关键,它负责将数据转化...

    ----------群硕面试题------

    14. 对比抽象基类和接口: - 抽象基类可以提供实现,接口只能声明方法,不能包含实现。 - 类只能继承一个抽象基类,但可以实现多个接口。 15. 对象一致性与相等性: - 一致性(Identity)是指对象的内存地址相同...

    C# partial关键字说明

    **局部类型的基类和接口:** 1. 基类必须在所有部分中一致,如果不指定基类,则默认没有基类。 2. 接口具有累加效应,可以在不同部分中多次指定,编译器会合并。 使用`partial`关键字能够极大地提升代码的可管理性...

    netframework类库

    .NET Framework 类库是Microsoft .NET Framework SDK中的一个重要组件,由各种类、接口和值类型组成。该库提供对系统功能的访问,是建立.NET Framework应用程序、组件和控件的基础。 名称空间概述 .NET ...

    C#程序设计资料全集PPT教学课件.pptx

    在定义类时,还可以指定基类和接口。基类提供了继承的起点,接口则定义了一组必须实现的方法,这提供了多态性。例如,类`Shape`可以定义为抽象基类,其中包含常量、受保护的变量和抽象方法`Area`,子类需要重写`Area...

    C++编程PPT资料

    PPT可能会详细解释虚函数的工作原理,以及如何使用虚函数实现抽象基类和接口。 在实际编程中,多态性经常被应用于设计模式,如工厂模式、策略模式等,这些模式在解决复杂问题时非常有用。PPT可能会通过实例演示如何...

Global site tag (gtag.js) - Google Analytics