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。这些封装类型广泛应用于功率晶体管、二极管等电子元件中,其设计旨在满足不同应用环境下...
1. 类与对象:理解类的封装、继承和多态性,以及对象的创建与销毁。 2. 构造函数与析构函数:掌握构造函数的作用及默认构造函数、拷贝构造函数的理解,同时理解析构函数的自动调用时机。 3. 封装:了解私有化、公有...
(六)类的封装和应用 6-1 类的封装和应用 (七)类的继承和应用 7-1 类的继承和应用 (八)类的抽象方法和类 8-1 类的抽象方法和类 (九)类中常见关键字 9-1 类中常见关键字 (十)类中接口应用 10-1 类中接口应用 (十一)...
- 类与对象:理解面向对象编程的基本概念,如封装、继承、多态。 - 构造器:了解构造器的作用,何时使用默认构造器和自定义构造器。 - 变量与数据类型:掌握基本数据类型、引用数据类型以及变量的声明和初始化。 ...
"VB.NET面向对象的实现"这一主题是VB.NET编程中的核心概念,它涉及到类、对象、封装、继承、多态等面向对象编程的关键要素。 1. **类与对象**: 类是面向对象编程的基础,它是描述对象特性和行为的模板。在VB.NET...
在Java-ppt中,你将学习到类、对象、封装、继承和多态等核心概念。类是对象的蓝图,而对象是程序中的具体实体。封装是将数据和操作这些数据的方法打包在一起的过程。继承允许一个类(子类)从另一个类(父类)继承...
继承是 Java 中的一种机制,允许一个类继承另一个类的属性和方法。继承的语法是使用 `extends` 关键字,例如 `public class Child extends Parent`。在 Java 中,只支持单一继承,也就是说一个类只能有一个直接父类...
各种单双排针排座封装(1.27mm、2.0mm、2.54mm间距),匹配伍尔特料号
VB的关键字是编程中的基础元素,它们具有特定的含义和功能,用于控制程序的流程、定义变量、声明函数等。下面我们将详细介绍VB语言中的关键字,并探讨其在编程中的作用。 1. 控制流关键字: - `If...Then...Else`...
7. **反射机制**:解释Java反射的原理和用途,如何在运行时动态获取类的信息并操作类的对象,以及Class类、Constructor类、Method类和Field类的使用。 8. **网络编程**:基础的Socket编程,包括TCP和UDP通信,以及...
然而在这种机制发明后的几年中,逐渐被terminfo机制取代。程序员使用terminfo时不用花过多的时间查阅termcap。只需让程序查询terminfo的数据库就可得到控制字符,并将其发送到终端或终端仿真程序。 1.1 NCURSES是...
Xilinx_Zynq-7000 、 Xilinx_Artix-7、Xilinx_Kintex-7、Xilinx_Virtex-7 原理图及PCB封装库;AD10格式的 封装 Xilinx_Artix-7.zip 302.69 KB, 下载次数: 313 , 下载积分: 资产 -2 信元, 下载支出 2 信元 ...
"第四章 继承.pdf"将详细解释如何定义和使用继承,以及super关键字和final关键字的作用。 4. **多态**: - **多态**:多态是面向对象的另一大特性,允许使用父类引用指向子类对象,使得同一个方法可以有不同的行为...
(个人不推荐下载,下载请谨慎) 内含多种封装,市面上可见的USB-type-c的封装内部都有,侧立的、贴片的、直插的、两脚固定、四角固定……都...内有pcblib和schlib,即原理图库和PCB封装库都有了 注意:不含有3D模型
通过以上对封装、继承、覆盖、构造过程、多态以及 `static`、`this`、`super` 和 `final` 关键字的详细介绍,我们可以更好地理解和运用Java的核心概念和技术点,从而编写出更加高效、灵活和易于维护的代码。
- **继承**:学习如何通过extends关键字实现类的继承,以及super关键字的使用。 6. **多态性** - **接口与抽象类**:理解接口和抽象类的区别,以及它们在多态中的作用。 - **方法重写与重载**:了解如何通过重写...
各种单双排针排座封装(1.27mm、2.0mm、2.54mm间距),匹配伍尔特料号
例如,`Tuna`类通过`public`关键字从`Fish`类继承,这意味着`Fish`的所有公有和保护成员在`Tuna`中都是可见的。 4.3 公有继承: - **public继承**表示基类的公有和保护成员在派生类中保持公有和保护状态,允许派生...
10. **class**:用于声明或定义类,是面向对象编程的核心,允许创建自定义数据类型,支持封装、继承和多态等特性。 11. **const**:一个非常重要的关键字,用于声明常量或指定变量的不可修改性。它可以应用于函数...
如果一个类继承了抽象类,且不声明为抽象类,那么必须实现所有抽象方法。 - 抽象类可以包含非抽象方法,即有具体实现的方法。 - 抽象类可以有构造方法,这些构造方法用于初始化抽象类的成员,但不能直接创建抽象类...