关于继承

继承的几种方式

  1. 原型链
/*原型链*/
    function SuperType() {
        this.property=true;
    }
    SuperType.prototype.getSuperValue=function () {
        return this.property;
    };
    function SubType(){
        this.subproperty=true;
    }
    SubType.prototype=new SuperType();
    SubType.prototype.getSubValue=function () {
        return this.subproperty;
    };
    var instance=new SubType();
    console.log(instance);

通过控制台可以看出原型链的方式
这里写图片描述
2. 借用构造函数继承

/*借用构造函数继承*/
function SuperType() {
    this.color=["blue","red"];
}
function SubType() {
    SuperType.call(this);//继承了color属性
}
var instance1=new SubType();
instance1.color.push("black");
console.log(instance1);

这里写图片描述

3.组合方式继承

/*组合方式继承*/
function SuperType(name){
    this.name=name;
    this.colors=["blue","white"];
}
SuperType.prototype.sayName=function () {
    console.log(this.name);
};

function SubType(age,name){
    SuperType.call(this,name);//通过构造函数方式继承
    this.age=age;
}
SubType.prototype=new SuperType();//通过原型的方式继承
Subtype.prototype.constructor=SubType;
Subtype.prototype.sayAge=function () {
    console.log(this.age);
};

var instance1=new SubType("hello",29);
console.log(instance1);

这里写图片描述

4.原型式继承
object.create()的profill方式

    function Object(o) {
    function F() {}
    F.prototype=o;
    return new F();
}

5.寄生组合式继承

 /*寄生组合式继承*/
  function inHeritPrototype(SuperType,SubType) {
      var prototype=Object(SuperType.prototype);//创建对象
      prototype.constructor=SubType;//增强对象
      SubType.prototype=prototype;
  }
  function SuperType(name){
      this.name=name;
      this.colors=["blue","white"];
  }
  SuperType.prototype.sayName=function () {
      console.log(this.name);
  };

  function SubType(age,name) {
      SuperType.call(this, name);
      this.age=age;
  }
  inHeritPrototype(SuperType,SubType);
  SubType.prototype.sayAge=function () {
      return this.age;
  };
  var instance1=new SubType("hello",28);
  console.log(instance1);

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是几个涉及Java中继承与多态的问题。 1. 什么是继承?Java中如何实现继承继承是面向对象编程中的一种重要机制,它允许子类继承父类的属性和方法。在Java中,继承可以通过使用关键字“extends”来实现。子类通过继承父类,可以获得父类的非私有属性和方法,并且可以重写这些方法。 2. 什么是多态?Java中如何实现多态? 多态是面向对象编程中的另一个重要概念,它允许同一个方法在不同的对象上具有不同的行为。在Java中,多态可以通过使用继承和方法重写来实现。如果子类重写了父类的方法,那么在使用子类对象调用该方法时,会执行子类中的方法而不是父类中的方法。 3. 什么是抽象类?Java中如何定义抽象类? 抽象类是一种不能被实例化的类,它只能被继承。抽象类可以包含抽象方法和非抽象方法,而抽象方法是没有实现的方法,必须在子类中被实现。在Java中,抽象类可以使用关键字“abstract”来定义,任何包含抽象方法的类都必须被定义为抽象类。 4. 什么是接口?Java中如何定义接口? 接口是一种特殊的抽象类,它只包含常量、方法签名和默认方法的声明。接口中的方法都是抽象的,没有实现。在Java中,接口可以使用关键字“interface”来定义,任何实现了接口的类都必须实现接口中的所有方法。 5. 什么是向上转型和向下转型?在什么情况下需要进行转型? 向上转型是指将子类对象赋值给父类引用变量的过程。向下转型是将父类引用变量转换为子类对象的过程。在Java中,向上转型是自动的,而向下转型需要使用强制类型转换符进行转换。需要进行转型的情况是在父类中定义的方法不能满足子类的需求时,需要在子类中重写该方法并进行转型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值