`
长虫的梅子
  • 浏览: 42757 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

抽象类与接口:让设计与实现分离!

    博客分类:
  • PHP
PHP 
阅读更多
对于抽象类和接口的使用也是非常常见的,然后他们存在意义是什么呢?

抽象类与接口的意义在于让 设计与实现相分离。

在抽象类中定义了一些标准,或者是实现了部分的方法,继承与该抽象类的子类可以遵循这些标准来实现自己的需求,或者是重写抽象类中已经实现的方法。
抽象类 不能被直接实例化,必须通过继承来实现。

接口 只能定义标准(一些方法),而不能包含具体实现的方法。
如果要使用接口,必须把在接口中定义的标准(一些方法),具体实现(也就是将接口中定义的方法全部实现)。

抽象类和接口,功能很相似,类只能继承与一个父类,却能一起使用多个接口,两者也能一起使用。

总结为:单继承,多接口;先继承, 后接口。

下面看如何定义抽象类 和 接口, 并且怎样一起使用。

定义抽象类的方法:


// 定义一个关于形状的抽象类
abstract class Shape()
{
   function setCenter($x, $y)  // 定义了一个具体实现的方法
   {
      $this->x = $x;
      $this->y = $y;
   }
   abstract function draw();  // 定义了一个抽象的方法,也就是一个标准,需要子类具体实现的
   protected $x, $y;          // 定义了两个属性
  
}

// 定义一个方形的子类
class Square extends Shape
{
   function draw()
   {
      // 这里根据方形的特征来实现该方法
   }
}

// 定义一个园的子类
class Circle extends Shape
{
   function draw()
   {
      // 这里根据园的特征来实现该方法
   }
}




定义接口的方法:


interface Chargeable
{
   public function getPrice();
}

class shopProduct implements Chargeable
{
   public function getPrice()
   {
      // 具体实现接口中定义的 getPrice 方法的功能
   }
}



一起使用抽象类和接口:


class AClass extends BClass implements AInterface,BInterface
{
   //...
}


上面只是简单的介绍了抽象类和接口的一些概念,还需要在不断的实践中来加深对这些概念的理解。







分享到:
评论

相关推荐

    Java语言的接口与抽象类

    Java语言的接口与抽象类是面向对象编程中的关键概念,它们在设计模式和代码组织中起着重要作用。这里我们将深入探讨这两个概念,并分析它们的异同。 首先,接口(Interface)是Java中的一种特殊类型,它通过使用`...

    抽象类和接口的区别

    本文将深入探讨抽象类与接口的区别,以及它们各自的优势和适用场景,旨在帮助开发者更明智地选择适合其项目需求的设计模式。 #### 一、抽象类:灵活性与继承性的结合 **定义与特点:** 抽象类(Abstract Class)...

    抽象类和接口

    首先,抽象类是一种特殊的类,它体现了数据抽象的思想,允许程序员将类的定义和实现分离。抽象类无法被实例化,它存在的主要目的是为子类提供一个公共的基类。在抽象类中,可以包含零个或多个抽象方法,也可以包含非...

    JAVA设计模式(抽象类与适配器模式)

    今天我们要探讨的是JAVA设计中的两个重要模式:抽象类与适配器模式。 首先,我们来理解一下“抽象”。抽象是面向对象编程的核心概念之一,它帮助我们处理对象的复杂性。在Java中,抽象通常通过抽象类来实现。抽象类...

    java抽象类与接口的区别

    - 分离报警功能,创建一个新的抽象类或接口,如`Alarm`,然后让`Door`类与`Alarm`类或接口关联。这样可以保持接口的单一职责,遵循接口隔离原则。 如果选择使用接口,可以有以下两种方式: - 定义`Door`和`Alarm`...

    从战略角度对Java抽象类与接口的剖析.pdf

    在现代软件开发中,Java语言凭借着其平台...开发者在进行软件开发时,应深入理解抽象类与接口的内涵,合理运用这些技术,以便在软件设计与实现过程中能够遵循良好的设计原则,构建出高品质、易于维护和扩展的软件系统。

    C#语言中的抽象类与接口的区别,应用

    7. **设计原则**:抽象类遵循"把可变的与不可变的分离"原则,定义了不变的部分,而可变的部分留给子类实现。接口则强调单一功能性,防止接口污染。 8. **组件设计**:如果希望组件有不同的版本,抽象类可以更好地...

    C# 中接口与抽象的区别

    此外,抽象类实现了 OOP 中的一个原则,把可变的与不可变的分离。抽象类和接口就是定义为不可变的,而把可变的座位子类去实现。好的接口定义应该是具有专一功能性的,而不是多功能的,否则造成接口污染。如果一个类...

    C#接口与抽象类的详解

    8. 抽象类和接口的分离原则,使得不变的部分在抽象层,可变的部分在子类实现。 9. 接口应具有单一职责,防止接口污染,即一个类只实现接口中真正需要的部分,而非全部。 10. 使用对象组合(组合优于继承)可以避免...

    抽象类和接口区别用法[文].pdf

    使用接口来定义行为能有效地分离行为与实现,使代码容易维护。接口是定义混合类型的理想选择,任何一个实现某个接口所规定的方法的类都可以具有这个接口的类型,而一个类可以实现多个接口,从而这个类就有了多种类。...

    C++编程接口与实现的分离实例

    总的来说,C++中的接口与实现分离是通过抽象类和继承来实现的,它可以提高代码的灵活性、可维护性和可测试性。通过一个控制台游戏的例子,我们可以直观地看到这种设计模式如何应用于实际问题中,从而更好地理解和...

    抽象类和接口的区别相关信息

    在编程世界中,抽象类和接口是两种重要的概念,它们都是用于实现多态性和代码复用,但在设计和实现上有着显著的区别。这里我们将深入探讨这两种机制,以便更好地理解和应用在实际开发中。 首先,抽象类是类的一种...

    Java语言程序设计抽象类和接口PPT教案学习.pptx

    抽象类的作用是从类的角度分离接口和实现,基类定义公共接口,子类实现该接口。 通用超类(Universal Superclass) ------------------------- 通用超类是指java.lang.Object类,它是所有定义的类的超类。Object类...

    C++中抽象类和接口的区别介绍

    在面向对象编程中,抽象类和接口是两种重要的设计机制,它们都用于定义类的蓝图,但有着不同的设计理念和用途。下面将详细解释这两种概念及其区别。 首先,抽象类(Abstract Class)是一种不能被实例化的类,它通常...

    【每日一步】面向接口编程选择java接口还是抽象类.doc

    在面向对象编程中,接口(Interface)与抽象类(Abstract Class)都是用来实现多态性的工具,它们允许开发者定义行为规范而不指定具体实现细节。两者的主要区别在于使用场景和设计目的。 ##### 1. 接口 - **定义**...

    设计模式:单例设计模式(全部实现方式)工厂设计模式,抽象工厂模式

    该模式通常会定义一个工厂接口或抽象类,由具体的工厂类实现该接口或抽象类来创建相应的产品。工厂模式的常见实现方式包括简单工厂、工厂方法、抽象工厂等。 抽象工厂模式是一种创建型设计模式,它的主要目标是提供...

    设计模式抽象实现

    8. **模板方法模式**:在抽象类中定义一个操作中的算法骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 9. **建造者模式**:将一个复杂对象的构建与其表示分离...

    设计模式之桥梁模式实现

    抽象类与实现接口之间通过虚线箭头表示关联关系,具体抽象类与具体实现类之间通过实线箭头表示实现关系。 在提供的压缩包文件"bridge"中,可能包含了这些类的Java源代码示例。通过分析这些代码,我们可以看到如何在...

    设计模式:基于C#的工程化实现及扩展(完整电子版)

    《设计模式:基于C#的工程化实现及扩展》是一本深入探讨软件设计与开发的专著,由王翔撰写,主要围绕C#编程语言展开。设计模式是软件工程中的重要概念,它代表了在特定情境下解决问题的可重用方案,能够帮助开发者...

    接口编程学习

    1. **定义与实现分离**:接口编程的一个核心理念是将定义(即接口声明)与实现(即具体实现逻辑)进行分离。这样做有助于保持设计的灵活性,同时也使得系统的扩展变得更加容易。 2. **抽象层面**:接口可以被视为...

Global site tag (gtag.js) - Google Analytics