// class Name{
// //构造函数,接收参数返回实例
// constructor(uname){
// this.uname=uname;
// }
// printf(aa){
// console.log(aa);
// }
// money(){
// console.log(100);
// }
// }
// let star=new Name("gaowanlu");
// star.printf("123456789");
// //类的继承
// class Father{
// constructor(x,y){
// this.x=x;
// this.y=y;
// }
// sum(){
// console.log(this.x+this.y);
// }
// }
// class Son extends Father{
// constructor(x,y){
// super(x,y);
// //super调用父类的constructor
// //使用子类像向父类传递函数
// }
// }
// //父类的函数只能使用父类中的值
// let son=new Son(1,2);
// son.sum();
//类的继承函数的就近原则
// class Father{
// say(){
// console.log("father");
// }
// }
// class Son extends Father{
// say(){
// console.log("son");
// }
// }
// let son=new Son();
// son.say();//输出字符串son
//在子类中调用父类中的函数
// class Father{
// say(){
// console.log("father");
// }
// }
// class Son extends Father{
// say(){
// super.say();//调用父类的函数
// }
// }
// let son=new Son();
// son.say();
// //子类继承父类加法方法,同时扩展减法方法
// class Father{
// constructor(x,y){
// this.x=x;
// this.y=y;
// }
// sum(){
// console.log(this.x+this.y);
// }
// }
// class Son extends Father{
// constructor(x,y){
// super(x,y);//调用父类的构造函数
// }
// sub(){
// console.log(this.x-this.y);
// }
// }
// let son=new Son(2,1);
// son.sub();
// son.sum();
//先定义类再进行实列化,顺序相反则不行,有着严格的顺序要求
//constructor里面的值都要使用this
//constructor 里的this是指向创建的实例
//类里的方法的this指向的是实例对象,即调用者