Advertisement
Guest User

Untitled

a guest
Dec 1st, 2015
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. interface IVehicle {
  2. start(type: string): string;
  3. }
  4.  
  5. interface ITrunk {
  6. openTrunk(): void
  7. }
  8.  
  9. interface IWindow {
  10. openWindow(): void
  11. }
  12.  
  13. class Vehicle implements IVehicle {
  14. private color: string;
  15.  
  16. constructor(color: string) {
  17. this.color = color;
  18. }
  19.  
  20. start(type: string) {
  21. return 'The ' + this.color + ' ' + type + ' started';
  22. }
  23. }
  24.  
  25. class Car extends Vehicle {
  26. constructor(color: string) {
  27. super(color);
  28. }
  29.  
  30. start() {
  31. return super.start('car');
  32. }
  33. }
  34.  
  35. class Sedan extends Car implements ITrunk, IWindow {
  36. constructor(color: string) {
  37. super(color);
  38. }
  39.  
  40. start() {
  41. return super.start() + ' and it is a Sedan';
  42. }
  43.  
  44. openTrunk() {
  45. console.log('Trunk is open');
  46. }
  47. openWindow() {
  48. console.log('Window is open');
  49. }
  50. }
  51.  
  52. class Truck extends Vehicle {
  53. constructor(color: string) {
  54. super(color);
  55. }
  56. start() {
  57. return super.start('truck');
  58. }
  59. }
  60.  
  61. var car = new Car('green');
  62. var sedan = new Sedan('red');
  63. sedan.openTrunk();
  64. sedan.openWindow();
  65. var truck = new Truck('blue');
  66.  
  67. console.log(car.start());
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement