Inheritance In ES6
Classes In ES6
Implementing a Class
- to Implement a class we use the class keyword.
- every class must have a constructor function. attributes of that class are defined using getters/setters(functions as well).
- as for attributes we use getters and setters.
- getter and setter are special kind of methods that allow us to set the value of an attribut, and get the values of an attribute.
class Person { //getter //here we used the get keyword and then the name of the getter get Name() { return this.name; //here we simply return the value of that attribute but with the this key word //so that we get the attribute of the select instance of that class } //setter set Name(name_) { //and here we set the value of the attribute this.name = name_; } //getter get Age() { return this.age; } //setter set Age(age_) { this.age = age_; } //constructor constructor(name_, age_) { this.name = name_; this.age = age_; this.canWalk = function() { console.log("YAY !! I'm Walking"); }; } }
//this is an instance of a Person let me = new Person("salah", 25); console.log(me); //Person {name:'salah',age:25} console.log(me.Age); //getter me.Age = 22; //setter console.log(me.Name); //getter me.Name = "SALAH EDDINE"; //setter console.log(me); //Person {name:'SALAH EDDINE',age:22}
Inheritance
- In modern javascript we have the extends key work which makes easier to implement
- inheritance in between our classes.
- Male extends Person means that Male class has all the properties and methods of Person And also have it's own.
class Male extends Person { //getter get Gender() { return this.gender; } constructor(name_, age_ /*,here we can add other attributes as well*/) { //in the child class(Male) we must call the parent constructor first //we do that using the super method and pass to it age_ and name_ parent properties super(name_, age_); //and now we assign the child property gender which in this case will have a fixed value this.gender = "male"; } }
//this is an instance of a male let MalePerson = new Male("mohammed", 15); console.log(MalePerson); //Male{name:'mohammed',age:15,gender:''male}
Top comments (0)