11、回顾一下类的形式定义(根类雏形基本形成)
_class("AObject", function(){
this._init = function(){
this._disposed = false;
};
//这个方法具体作何用途只能以后说明了,暂且理解成析构函数吧
this.dispose = function(){
this._disposed = true;
};
});
12、设计基类的目的是为了继承,所以有必要对基础支持代码做些调整,以便于支持继承
在_class函数第二个参数位置添加一个参数superClass,用来引用当前类的父类,注意放在第二个位置是有目的的,主要是为了和java中的类定义形式产生对照关系。
//---- 基础支持代码开始 ----
function __newClass(){
return function(){
this._init.apply(this, arguments);
};
}
function _class(className, superClass, classImp){
if(superClass === null){
//如果是null,默认父类为Object(实现中只有AObject继承自Object)
superClass = Object;
}else if(superClass === ""){
//如果是"",默认父类为AObject,为什么这么做,还不便说清楚,以后再详细说明理由吧!
superClass = window["AObject"];
}
var clazz = __newClass();
clazz.prototype = new superClass(); //这是模拟继承的关键语句
window[className] = clazz;
classImp.apply(clazz.prototype);
}
//---- 基础支持代码结束 ----
_class("AObject", null, function(){
this._init = function(){
this._disposed = false;
};
this.dispose = function(){
this._disposed = true;
};
});
13、继承机制已经实现,下面就是如何方便的调用父类同名方法了,_super关键字登台
function __newClass(){
return function(){
this._init.apply(this, arguments);
};
}
function _class(className, superClass, classImp){
if(superClass === null){
superClass = Object;
}else if(superClass === ""){
superClass = window["AObject"];
}
var clazz = __newClass();
clazz.prototype = new superClass();
var _super = superClass.prototype; //原来_super的含义只是这个
window[className] = clazz;
classImp.apply(clazz.prototype, [_super]);
}
_class("AObject", null, function(){
this._init = function(){
this._disposed = false;
};
this.dispose = function(){
this._disposed = true;
};
});
//定义一个类,继承自AObject
_class("ClassA", "", function(_super){
this._init = function(){
_super._init.call(this);
this._name = "ClassA";
};
this.dispose = function(){
//就是这么调用父类方法的,看来也不是很简洁,讲究着用吧,总比写出来父类的名
//字的形式要稳定的多!
_super.dispose.apply(this);
};
});
就先写这些吧,整个封装的演化过程已经是历史了,想回忆清楚还真有点难度。^_^
分享到:
相关推荐
根据给定的文件信息,我们将深入探讨几种常见的半导体器件封装形式:TO-252、TO-251A、TO-251A1、TO-251、TO-126 和 TO-220。这些封装类型广泛应用于功率晶体管、二极管等电子元件中,其设计旨在满足不同应用环境下...
- 类与对象:理解面向对象编程的基本概念,如封装、继承、多态。 - 构造器:了解构造器的作用,何时使用默认构造器和自定义构造器。 - 变量与数据类型:掌握基本数据类型、引用数据类型以及变量的声明和初始化。 ...
Xilinx_Zynq-7000 、 Xilinx_Artix-7、Xilinx_Kintex-7、Xilinx_Virtex-7 原理图及PCB封装库;AD10格式的 封装 Xilinx_Artix-7.zip 302.69 KB, 下载次数: 313 , 下载积分: 资产 -2 信元, 下载支出 2 信元 ...
"VB.NET面向对象的实现"这一主题是VB.NET编程中的核心概念,它涉及到类、对象、封装、继承、多态等面向对象编程的关键要素。 1. **类与对象**: 类是面向对象编程的基础,它是描述对象特性和行为的模板。在VB.NET...
继承是 Java 中的一种机制,允许一个类继承另一个类的属性和方法。继承的语法是使用 `extends` 关键字,例如 `public class Child extends Parent`。在 Java 中,只支持单一继承,也就是说一个类只能有一个直接父类...
在Python Web自动化测试领域,关键字驱动和Page Object Model(POM)封装是两种常见的高级测试框架设计模式。这两种方法能够显著提升代码的可维护性和可读性,使得测试脚本更加模块化,易于管理和扩展。 **关键字...
VB的关键字是编程中的基础元素,它们具有特定的含义和功能,用于控制程序的流程、定义变量、声明函数等。下面我们将详细介绍VB语言中的关键字,并探讨其在编程中的作用。 1. 控制流关键字: - `If...Then...Else`...
1. **基础概念**:首先,我们会了解什么是面向对象编程,与过程式编程的区别,以及它的三大特性——封装、继承和多态。 2. **Java环境设置**:如何安装JDK,配置环境变量,以及使用Java开发工具(如Eclipse或...
7. **反射机制**:解释Java反射的原理和用途,如何在运行时动态获取类的信息并操作类的对象,以及Class类、Constructor类、Method类和Field类的使用。 8. **网络编程**:基础的Socket编程,包括TCP和UDP通信,以及...
(六)类的封装和应用 6-1 类的封装和应用 (七)类的继承和应用 7-1 类的继承和应用 (八)类的抽象方法和类 8-1 类的抽象方法和类 (九)类中常见关键字 9-1 类中常见关键字 (十)类中接口应用 10-1 类中接口应用 ...
"第四章 继承.pdf"将详细解释如何定义和使用继承,以及super关键字和final关键字的作用。 4. **多态**: - **多态**:多态是面向对象的另一大特性,允许使用父类引用指向子类对象,使得同一个方法可以有不同的行为...
通过以上对封装、继承、覆盖、构造过程、多态以及 `static`、`this`、`super` 和 `final` 关键字的详细介绍,我们可以更好地理解和运用Java的核心概念和技术点,从而编写出更加高效、灵活和易于维护的代码。
- **结构型模式**:关注类和对象的组合,封装复杂的关联关系,使代码设计更具灵活性和可扩展性。包括: - 适配器(Adapter):将一个类的接口转换成客户希望的另一个接口。 - 桥接(Bridge):将抽象部分与它的...
- **继承**:学习如何通过extends关键字实现类的继承,以及super关键字的使用。 6. **多态性** - **接口与抽象类**:理解接口和抽象类的区别,以及它们在多态中的作用。 - **方法重写与重载**:了解如何通过重写...
在`vb-oo.rar`这个压缩包中,你可能会找到关于如何在VB中创建和使用类、实现多态、继承和封装的详细示例代码。通过学习这些示例,你可以深入理解VB的面向对象编程,并提升你的编程技能。记得解压文件并逐个查看,...
例如,`Tuna`类通过`public`关键字从`Fish`类继承,这意味着`Fish`的所有公有和保护成员在`Tuna`中都是可见的。 4.3 公有继承: - **public继承**表示基类的公有和保护成员在派生类中保持公有和保护状态,允许派生...
**Micro-USB A B 定义和封装** Micro-USB是一种通用串行总线(USB)接口的标准,广泛应用于各种移动设备,如智能手机、平板电脑、数码相机等。它的出现是为了替代传统较大的USB接口,以适应更小型化、便携式电子...
在面向对象编程中,对象是数据和操作数据的方法的封装体,它支持继承、封装和多态等特性。 ### 关于Objective-C Objective-C是一种通用、面向对象的编程语言,由Stepstone公司于1983年开发,并被苹果公司在其操作...
10. **class**:用于声明或定义类,是面向对象编程的核心,允许创建自定义数据类型,支持封装、继承和多态等特性。 11. **const**:一个非常重要的关键字,用于声明常量或指定变量的不可修改性。它可以应用于函数...
如果一个类继承了抽象类,且不声明为抽象类,那么必须实现所有抽象方法。 - 抽象类可以包含非抽象方法,即有具体实现的方法。 - 抽象类可以有构造方法,这些构造方法用于初始化抽象类的成员,但不能直接创建抽象类...