76 lines
1.7 KiB
JavaScript
76 lines
1.7 KiB
JavaScript
//// [derivedClasses.ts]
|
|
class Red extends Color {
|
|
public shade() {
|
|
var getHue = () => { return this.hue(); };
|
|
return getHue() + " red";
|
|
}
|
|
}
|
|
|
|
class Color {
|
|
public shade() { return "some shade"; }
|
|
public hue() { return "some hue"; }
|
|
}
|
|
|
|
class Blue extends Color {
|
|
|
|
public shade() {
|
|
var getHue = () => { return this.hue(); };
|
|
return getHue() + " blue";
|
|
}
|
|
}
|
|
|
|
var r = new Red();
|
|
var b = new Blue();
|
|
|
|
r.shade();
|
|
r.hue();
|
|
b.shade();
|
|
b.hue();
|
|
|
|
|
|
|
|
|
|
//// [derivedClasses.js]
|
|
var __extends = this.__extends || function (d, b) {
|
|
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
|
|
function __() { this.constructor = d; }
|
|
__.prototype = b.prototype;
|
|
d.prototype = new __();
|
|
};
|
|
var Red = (function (_super) {
|
|
__extends(Red, _super);
|
|
function Red() {
|
|
_super.apply(this, arguments);
|
|
}
|
|
Red.prototype.shade = function () {
|
|
var _this = this;
|
|
var getHue = function () { return _this.hue(); };
|
|
return getHue() + " red";
|
|
};
|
|
return Red;
|
|
})(Color);
|
|
var Color = (function () {
|
|
function Color() {
|
|
}
|
|
Color.prototype.shade = function () { return "some shade"; };
|
|
Color.prototype.hue = function () { return "some hue"; };
|
|
return Color;
|
|
})();
|
|
var Blue = (function (_super) {
|
|
__extends(Blue, _super);
|
|
function Blue() {
|
|
_super.apply(this, arguments);
|
|
}
|
|
Blue.prototype.shade = function () {
|
|
var _this = this;
|
|
var getHue = function () { return _this.hue(); };
|
|
return getHue() + " blue";
|
|
};
|
|
return Blue;
|
|
})(Color);
|
|
var r = new Red();
|
|
var b = new Blue();
|
|
r.shade();
|
|
r.hue();
|
|
b.shade();
|
|
b.hue();
|