抽象类(Abstract)是不能被实例化的类,往往不给出具体代码的实现,归纳子类共同特征和行为。

(AS3没有abstract关键字,但也可以定义概念上的抽象类。)

在理想的继承架构设计里,具体类都继承于抽象类

①归纳,尽可能多的归纳。②简练,尽可能少的简练。

通过第三方类AbstractEnforcer判断生成对象的类型,或抛出异常。

原理:先用flash.utils.getQualifiedClassName()生成所属类的全饰名称,

          再用flash.utils.getDefinitionByName()得到对象类的Class的引用,

如果一致则表示是抽象类被实例。

在抽象类import com.mimswright.utils.AbstractEnforcer,

构造函数插入AbstractEnforcer.enforceConstructor(this, AbstractFoo),

抽象方法插入AbstractEnforcer.enforceMethod()。

(注意,包外类不可用,原理在文件中)

实际上,接口仅包含一组(n个)方法声明,没有具体代码。实现接口的类必须定义其方法。

语法上,只定义public方法名称,参数和返回值。

运用上如果一些类没有关联,但拥有相同的public方法,那么归纳为一个接口。

可以看成同一数据类型,享受向上向下转换的好处。

能够以其他数据类型向上转换,是接口的核心。

OOP编程一条重要法则:依赖倒转原则(Dependence Inversion Principle)

方法是尽量依赖和使用抽象类和接口,而不是具体类。

创建接口:

package{

访问控制 interface 接口名称{

static function 方法名(参数:参数类型):返回类型

function 方法名(参数:参数类型):返回类型

function get 属性名():返回类型

function set 属性名(参数:参数类型):void

}

}

注意:接口有访问控制,但方法不可有,不定义且为public,没有任何实现。

接口不能定义属性,但可以用getter和setter

实现(implements)接口:

一个类可以实现多个接口,用“,”隔开。如果类和接口不在同一包内,需要import

public class 类名 implements 接口1,接口2{...}

接口中定义的方法的实现只能用public三要素必须相同,且不能和其他重复。

参数名称、参数默认值课更改。

实现一类接口的类看成同一数据类型

向上转换

private function print(obj:IName):void{}

var cloneA:IClonable = copy(a) -> IClonalbe、copy是自定义的

向下转换

if(cloneObj is A) trace((cloneObj as A))

接口的多继承

interface IFoo extends IBar1,IBar2{}

子接口继承父接口的所有方法定义,要注意的是不能和所有父接口有命名冲突。

没有override机制,因为没有用。

接口分类

多方法接口:归纳具有多种功能的数据类型

单方法接口:只有一个方法,运用特定的方法

标识接口:没有方法,将类分类

抽象类和接口的区别

抽象类和接口都是抽象的数据类型,简称抽象类型

抽象类 √ 有部分实现,可以统一修改子类代码。接口不方便改动。

接口 √ 多接口,单继承,可作为次类型。当类作为多种类型存在时,优先考虑接口。

将接口和抽象类结合使用:

①充分利用抽象类对子类的影响,集中管理代码。抽象类也可使用接口。

②系统的可扩展性增加。

默认适配器(Default Adapter)

抽象类实现接口,具体类继承抽象类。 ---|>接口<<interface>> —|>继承,泛化

AS3 抽象类与接口相关推荐

  1. 不允许使用抽象类类型的对象怎么办_Java基础——面试官:你来说说抽象类和接口的区别...

    无论你是新手Java 程序员,还是老手程序员,可能在实际开发中很少自己写抽象类. 但是抽象类在某些时候的功能很强大,可以保证子类中百分百实现父类中的方法 -- 普通类的弊端,消除子类的冗余代码 -- ...

  2. php 抽象类 接口 区别,PHP中抽象类、接口的区别与选择分析

    本文实例分析了PHP中抽象类.接口的区别与选择.分享给大家供大家参考,具体如下: 区别: 1.对接口的使用是通过关键字implements.对抽象类的使用是通过关键字extends.当然接口也可以通过 ...

  3. C#中抽象类和接口的区别

    一.抽象类:       抽象类是特殊的类,只是不能被实例化:除此以外,具有类的其他特性:重要的是抽象类可以包括抽象方法,这是普通类所不能的.抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆 ...

  4. java中抽象接口_一篇文章让你彻底理解java中抽象类和接口

    相信大家都有这种感觉:抽象类与接口这两者有太多相似的地方,又有太多不同的地方.往往这二者可以让初学者摸不着头脑,无论是在实际编程的时候,还是在面试的时候,抽象类与接口都显得格外重要!希望看完这篇博客文 ...

  5. 类、抽象类、接口之间的区别

    目录 1.类与抽象类的异同之处 (1)类和抽象类的区别 (2)类和抽象类的相同之处 2.接口与类的异同之处 (1)接口与类相似点 (2)接口与类的区别 (3)接口特性 3.抽象类和接口的区别 1.类与 ...

  6. Java 抽象类与接口的区别

    接口和抽象类有什么区别 你选择使用接口和抽象类的依据是什么? 接口和抽象类的概念不一样.接口是对动作的抽象,抽象类是对根源的抽象 抽象类表示的是,这个对象是什么.接口表示的是,这个对象能做什么.比如, ...

  7. java 接口工程_Java工程师(15)抽象类与接口

    抽象类 思考下面程序潜在的问题 交通工具中定义了4个方法,其中行驶方法内部会依次调用启动.加速.停止方法.由于不同的交通工具,启动的方式差异很大,所以交通工具类中并不实现该方法,而是将其交给子类实现. ...

  8. 《Java技术》第三次作业--面向对象——继承、抽象类、接口

    1.阅读下面程序,分析是否能编译通过?如果不能,说明原因.应该如何修改?程序的运行结果是什么?为什么子类的构造方法在运行之前,必须调用父 类的构造方法?能不能反过来? class Grandparen ...

  9. 抽象类和接口的联系与区别

    抽象类和接口联系与区别 关键字: 抽象类与接口的区别 abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的 ...

最新文章

  1. append函数_连载|想用Python做自动化测试?函数的参数传递机制及变量作用域
  2. python xpath语法-Python爬虫:Xpath语法笔记
  3. python编程思路不清晰_安利一波Python编程中非常实用的那些黑魔法
  4. 笔记-信息化与系统集成技术-云计算操作系统的主要关键技术
  5. YY一下,扎克伯格做了一个什么样的AI家居助手?
  6. 【Linux】一步一步学Linux——free命令(80)
  7. MKL学习——功能简介
  8. [解决方案]ln:无法创建符号链接‘ /usr/bin/python‘:权限不够
  9. 11组软件工程组队项目失物招领系统——界面设计文档
  10. 《流畅的Python》读书笔记——Python对象引用、可变性和垃圾回收
  11. 【工作方法系列】:STEP1 - 5分钟方法
  12. html表格圣杯布局页面,Css圣杯布局
  13. Linux系统运维与架构设计之Linux概述
  14. 互联网集体下沉,PKQ后又一匹下沉黑马出现了
  15. FTPClientUtil FTP客户端工具
  16. 使用css3和tween.js二种方式实现照片翻转
  17. android图标未读消息,Android系统 应用图标显示未读消息数(BadgeNumber) 桌面app图标的角标显示...
  18. 从曾经的一家独大到现在的群雄逐鹿,大数据时代的数据库圈为啥如此之乱?
  19. linux驱动编程——ch340x驱动移植
  20. css-loader 版本号,css loader安装问题

热门文章

  1. 提升页面转化率100招
  2. MMKV的简单实用一
  3. WebLogic的下载与安装
  4. 关于BN层的一点理解
  5. C#零基础运动控制教程--运动控制卡低速高速运动实验
  6. 四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps
  7. dedecms织梦搬家数据库导入失败怎么办?
  8. Load Balancer as a Service (LBaaS V2.0)
  9. poj 1718 River Crossing
  10. Python的七大就业方向,小白适合哪个方向?学了Python能干什么?