码迷,mamicode.com
首页 > 其他好文 > 详细

抽象类和接口

时间:2015-09-04 07:20:40      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:

抽象类和接口

抽象类和接口

Table of Contents

abstract

abstract class Car {
   abstract function func1();
}

class Fastcar extends Car {
   public function func1() {
     ...
   }
}
  1. 继承类必须实现抽象类的 所有 方法
  2. 抽象类可以有自己的属性
  3. 抽象类可以有自己的实现方法, 也叫具体方法, interface 没有
  4. 可以有 protected 方法, interface 不可以

interface

interface iUsb {
    public function f();
}
class phone implements iUsb {
    public function f() {
        ..
    }
}

定义规范

当多个类, 之间平级的, 有相同的方法, 但是实现不同

类可以实现多个接口, 接口可以实现多个接口

class t1 implements i1, i2, i3 { }
interface i1 extends i2, i2, i3 {}
  1. 继承类要实现 接口的全部方法
  2. interface 不能有 private 的方法
  3. interface 里面的属性只能是 常量
  4. interface 里面不能实现方法, 抽象类可以, (可以理解接口里面全都是抽象方法)
  5. interface 可以定义常量
class Monkey {
    public function climb() { ... }
}
interface iBirdable {
    public function fly();
}
interface iFishable {
    public function swim();
}
class NewMonkey extends Monkey implements iBirdable, iFishable {
    public function fly()  { ... }
    public function swim() { ... }
}

抽象类和接口的区别

  1. 如果要创建一个模型, 这个模型将由一些紧密的对象采用, 就可以使用抽象类. 如果要创建由一些不相关对象采用的功能, 使用接口
  2. 如果必须从多个来源继承行为, 就使用接口. 接口可以实现多个, 不可以继承多个抽象类
  3. 如果所有的类会有共享一个公共的行为实现, 就使用抽象类, 并在其中的实现该行为, 在接口中无法实现具体方法

抽象类和接口

标签:

原文地址:http://www.cnblogs.com/sunznx/p/4781087.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!