首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从Java Script的子类中被覆盖的方法中调用超类方法?

在Java Script中,如果一个子类继承了一个父类,并且在子类中覆盖了父类的某个方法,但又想在子类中调用父类被覆盖的方法,可以使用以下方式:

  1. 使用super关键字:在子类中,可以使用super关键字来调用父类的方法。通过super关键字,可以访问父类的属性和方法。在覆盖的方法中,使用super.方法名()来调用父类的方法。

例如,假设有一个父类Parent和一个子类Child,子类覆盖了父类的方法methodA,可以通过以下方式调用父类的方法:

代码语言:javascript
复制
class Parent {
  methodA() {
    console.log("父类的方法A");
  }
}

class Child extends Parent {
  methodA() {
    super.methodA(); // 调用父类的方法
    console.log("子类覆盖的方法A");
  }
}

const child = new Child();
child.methodA();

输出结果为:

代码语言:txt
复制
父类的方法A
子类覆盖的方法A
  1. 使用父类的原型对象:在子类中,可以通过访问父类的原型对象来调用父类的方法。通过父类.prototype.方法名.call(this)来调用父类的方法,其中this指向当前子类的实例。

例如,假设有一个父类Parent和一个子类Child,子类覆盖了父类的方法methodA,可以通过以下方式调用父类的方法:

代码语言:javascript
复制
function Parent() {}

Parent.prototype.methodA = function() {
  console.log("父类的方法A");
};

function Child() {}

Child.prototype.methodA = function() {
  Parent.prototype.methodA.call(this); // 调用父类的方法
  console.log("子类覆盖的方法A");
};

const child = new Child();
child.methodA();

输出结果为:

代码语言:txt
复制
父类的方法A
子类覆盖的方法A

以上是在Java Script中从子类中被覆盖的方法中调用超类方法的两种常用方式。这样可以保留父类方法的功能,并在子类中添加额外的逻辑。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

创建子类对象时,父构造函数调用子类重写方法为什么调用子类方法

static void main(String[] args) { A a = new A(); B b = new B(); } } 问题:为什么创建A对象时候父调用子类方法...但是:创建B对象父调用方法? 答案: 当子类被加载到内存方法区后,会继续加载父到内存。...如果,子类重写了父方法子类方法引用会指向子类方法,否则子类方法引用会指向父方法引用。 如果子类重载了父方法,则子类重载方法引用还指向子类方法。...如果子类方法没有重写也没有重载父方法,则方法引用会指向父方法。 当子类对象创建时,会先行调用构造方法(构造方法也是方法),虚拟机会在子类方法区寻找该方法并运行。...但是:由于java语言是静态多分派,动态单分派。其结果是当编译时候,父构造方法调用方法参数已经强制转换为符合父方法参数了。 上边代码在编译前已经转换为下面这个样子了。

6.1K10

Python_子类调用方法

1.方式一 子类调用方法,包含2形式调用。一种形式是在内部通过继承方式调用方法,另外一种形式是子类实例化后之后通过继承方式来调用方法。如下图所示: ?...注意一点,在子类内部通过继承方式调用属性时,必须要带上self位置参数(self只在实例化过程中和在实例调用属性时才能省略(self本来含义就是指向实例自己));而实例在通过继承调用属性或方法时...3班") #调用子类本身方法 student.course() #通过子类调用方法--->实例化之后来调用方法 student.eat() #调用子类方法,在子类方法调用子类方法,...使用super好处,一是可以代替父名,这样后期父名更改了,我们只需要更改子类名称后面的父名即可,子类其他名可以不用更改;二是使用了super后,调用方法时可以不传参数self。..."11届土木3班") #调用子类本身方法 student.course() #通过子类调用方法--->实例化之后来调用方法 student.eat() #调用子类方法,在子类方法调用子类方法

4.8K20

子类调用同名方法和属性

Python面向对象,利用子类调用同名方法和属性。...首先我们定义了两个父,Master和School # @author: 北山啦 # FileName: 12子类调用同名方法 # @time: 2022/6/5 14:54 #父Master...,子类如何来调用呢 在这里,定义Prentice,继承了Master和School,添加了和父类同名属性和方法 调用子类属性和方法 如果调用了父属性和方法,父类属性会自动掩盖子类属性,股灾调用属性前...__init__ print(f'运用{self.kongfu}制作煎饼果子') 调用父类属性和方法 如果调用方法,但是为了保障调用是父属性,必须在方法调用初始化...__init__ print(f'运用{self.kongfu}制作煎饼果子') '''调用方法,但是为了保障调用是弗列属性,必须在方法调用初始化'''

1.8K20

关于使用MethodHandle在子类调用祖父重写方法探究

关于使用MethodHandle在子类调用祖父重写方法探究 注:这个例子原本出现在周志明先生《深入理解Java虚拟机》--虚拟机字节码执行引擎章节,介于有读者朋友有疑问,这里基于Java代码层面解释一下...这里直接看Sonthinking方法(关于为何这样实现,在《深入理解Java虚拟机》读书笔记(七)--虚拟机字节码执行引擎(下)也解释了)。...在普通方法调用,这个this参数是虚拟机自动处理,表示是当前实例对象,我们在方法可以直接使用。...基于这个事实,我们这时可以直接在GrandFatherthinking方法调用Son独有的方法,使用反射或者直接类型强制转换为Son就行了。...这个参数中指定方法接收者类型,bindTo指定接收者类型必须要是这个子类,不然会出现ClassCastException异常。

9.4K30

python中子类调用初始化方法

如果一个方法子类实例中被调用,或者一个属性在子类实例中被访问,但是该方法或属性在子类并不存在,那么就会自动去其父中进行查找。...子类不显式调用构造方法,而父构造函数初始化了一些属性,就会出现问题 如果子类和父都有构造函数,子类其实是重写了父构造函数,如果不显式调用构造函数,父构造函数就不会被执行,导致子类实例访问父初始化方法初始变量就会出现问题...方法一更直观,方法二可以一次初始化所有 super函数比在累中直接调用未绑定方法更直观,但是其最大有点是如果子类继承了多个父,它只需要使用一次super函数就可以。...二、第二种解释     在Python中子类继承父过程,如果子类覆盖__init__()方法,则子类默认将执行与父一样初始化方法。...但是假如子类自己重写 了(也成为覆盖)父__init__()方法,那么就需要显式调用初始化方法了。有两种方法可以做到:      1:ParentClass.

2.1K10

Java加载机制---父子类多态调用

null 1) 上面程序最大难点,也是最重要地方就是:在父构造函数调用了虚函数,并且这个函数被子类重载了 2) 继承时候,子类与父有着同名属性和同名方法,关于同名属性初始化过程也是必须要了解...同名属性会不会被覆盖掉,同名方法就是多态,同名方法之间调用是怎么样。...,对应着前半句意思;如果他生了小孩,那么这个小孩子是一定有父亲Java代码这样看,如果我们实例化一个子类,必须先构造这个子类,否则是错误。...;同名方法是多态,只会去调用子类重载方法, 这个规则说白了,就是当有父子类时候,必须都所有的存储空间都分配好了,才能执行  属性初始化,继而是构造函数;同时要明白一点,子类构造函数是在父构造完成之后才会去执行...,多态调用 7)子类有重载,所以调用子类方法,但是子类baseName还没有初始化,所以就没有直接打出null了 8)父创建完毕,接下来就是去执行子类创建工作了, 9)首先为子类属性进行初始化

2.7K40

Java script函数使用方法

前言 什么是函数,就是把一段相对独立具有特定功能代码块封装起来,形成一个独立实体,就是函数,起个名字(函数名),在开发可以反复调用,函数作用就是封装一段代码,可以重复使用。 1....一个函数一般都特定用来干 一件 事情 1.2 调用 调用函数语法: 函数名(); 特点: 函数体只有在调用时候才会执行,调用需要()进行调用。...作业: 求1-n之间所有数和 求n-m之间所有数和 求2个数最大值 1.4 函数相关其它事情 1.4.1 匿名函数与自调用函数 匿名函数:没有名字函数 匿名函数如何使用: 将匿名函数赋值给一个变量...1.4.2 函数本身也是值 function fn() {} console.log(typeof fn); 函数作为参数 因为函数也是一种值类型,可以把函数作为另一个函数参数,在另一个函数调用 function...//} f(); } function f2(){ console.log(2); } f1(f2); //2 函数做为返回值 因为函数是一种类型,所以可以把函数可以作为返回值函数内部返回

98600

Java静态方法不能被子类重写

参考链接: 可以在Java重载或重写静态方法Java静态方法不能被子类重写 特点:静态方法属于方法,也属于对象方法,但是静态方法存在。...结论:Java静态方法不能被子类重写,实际上,子类静态方法隐藏了父静态方法,因此父子类静态方法同时存在,只不过父通过名(或对象名)调用是父静态方法子类通过名(或对象名)调用子类静态方法...,不支持多态,所以此处调用静态方法         f1.doWork();            // 非static(静态)方法调用,支持多态         System.out.println...(final,private 方法也如此) (2)静态方法可通过名直接调用,也可通过实例化对象调用,因此Father 实例化对象f1调用是父(不是子类静态方法。...new Son();         f1.methon();            // static(静态)方法调用,不支持多态,所以此处调用静态方法         f1.doWork

2.1K20

Java方法重载和重写(覆盖

参考链接: Java方法重载不同方法 一....方法重载(overload)  /*  * 方法重载判定:同一方法名相同,参数列表不同(参数个数不同,参数列表对应位置参数类型不同),其他方法返回值  * 和访问修饰符都随意。  ...:参数列表对应位置类型不同,与参数名字没有任何联系,所以在判断方法重载过程     // 不考虑参数顺序是否变化。     ...方法重写(覆盖)  方法重写也叫方法覆盖,表示子类要对父某一方法进行修改,方法重写比较简单,通常遵循以下原则:  1. 两同:方法名和方法参数列表相同  2....一大: 子类重写方法访问权限大于等于父方法  3. 二小:子类重写方法抛出异常类型要小于等于父子类重写方法返回值类型小于等于父

2.2K20

Android 通过 JNI 调用 Java 构造方法和父方法

Android 还可以通过 JNI 来调用 Java 一个构造方法,从而创建一个 Java 调用构造方法 调用构造方法步骤和之前调用实例方法步骤类似,也需要获得对应方法 id。...通过这种方法,同样可以创建一个 Java 调用方法 可以通过 JNI 来调用实例方法。...在子类通过调用 CallNonvirtualMethod 方法调用方法。...具体看代码: /** * 调用方法 * 创建一个子类,由子类调用方法 */ extern "C" JNIEXPORT void JNICALL Java_com_glumes_cppso_jnioperations_InvokeConstructorOps_callSuperMethod...Animal 子类,首先由 NewObject 方法创建 Cat ,然后调用方法

2.6K20

thymeleaf模板引擎调用java方法(附源码)

问题分析 在My Blog项目的issue页面收到了这个问题,issue描述是关于如何在thymeleaf模板页面如何调用java方法,问题描述如下截图: ?...test() on null context object 从这条异常信息可以大致得出一个答案,调用test()方法处于一个空对象,即context域中并没有对应java实例,因此无法调用。...问题重现 重新编写了代码,没有把调用java实例放入request对象,重现代码如下: public class MethodTestController { @RequestMapping...两个异常分别是: 异常1 : Attempted to call method on null context object 调用方法处于一个空对象,即调用实例为空。...问题解决方案 分析至此,异常出现问题已经无比清晰: 针对于异常1,需要将期望调用java实例存入thymeleafcontext域中,代码层面即为:将实例对象存入Request对象

2.2K50

JavaRMI(远程方法调用

参考链接: Java远程方法调用RMI RMI基本概念  RMI(Remote Method Invocation,远程方法调用)是java1.1开始实现,它大大增强了Java开发分布式应用能力...RMI开发步骤  首先创建远程接口并声明远程方法,需要继承自java.rmi.Remote(Client和Server需要共享这个接口);创建远程接口实现,这个必须继承自java.rmi.server.UnicastRemoteObject...; public class Client {     public static void main(String[] args){         try{             //远程对象调用端口和注册...rand.nextInt(names.length)]);             list.add(p);         }         return list;     } }  如何运行  命令行运行方法...代码下载:  JavaRMI示例程序  参考资料:  学习笔记:JAVA RMI远程方法调用简单实例  RMI实例(二)(无需dos运行rmic和rmiregistry)   《Thinking in

1.5K30

使用 Java 反射机制调用私有方法原理详解

文章目录 前言 一、私有方法在本类中直接调用 1、在本类实例化,调用私有方法 2、尝试在其他直接调用私有方法(错误示范) 二、使用反射机制实例化强制调用私有方法 1、使用加载器加载被调用 2...args[]);返回对象 三、完整实现代码、运行结果及总结 总结 ---- 前言 在 Java 如果我们使用 new 关键字调用构造函数对进行实例化,我们就可以根据在这个修饰符来访问定义非私有方法...---- 一、私有方法在本类中直接调用 1、在本类实例化,调用私有方法 说明:被 private 关键字修饰构造方法方法或者数据域只在其所在可见。...2、尝试在其他直接调用私有方法(错误示范) 如果我们直接在其他实例化Demo,来直接调用demo()方法,就会发现 IDE 直接产生编译错误,很明显我们直接在另一个调用私有方法是行不通,...我们通过实例化Method调用Method方法。常用方法有以下几个。这里我们调用第四个获取 Demo demo() 方法,参数类型为 null。

3.6K31

Java 反射机制详解:私有方法调用头大?如何通过反射调用私有方法

文章目录 前言 一、私有方法在本类中直接调用 1.1、在本类实例化,调用私有方法 1.2、尝试在其他直接调用私有方法(错误示范) 二、使用反射实例化强制调用私有方法 2.1、使用加载器加载被调用...、运行结果 总结 前言 在 Java 如果我们使用 new 关键字调用构造函数对进行实例化,我们就可以根据在这个修饰符来访问定义非私有方法。...但是如果需要在其他调用私有的方法,就可以利用 Java 中提供反射来实现。...一、私有方法在本类中直接调用 1.1、在本类实例化,调用私有方法 说明:被 private 关键字修饰构造方法方法或者数据域只在其所在可见。...(); } } 1.2、尝试在其他直接调用私有方法(错误示范) 如果我们直接在其他实例化 Demo ,来直接调用 demo() 方法,就会发现 IDE 直接产生编译错误,很明显我们直接在另一个调用私有方法是行不通

2.3K21

Java基础-Object方法

下面这些是 Java Object 方法,共 11 个,9 种方法,wait() 方法被重载了。...Object 可以说是 Java 始祖,其中有一些方法也是预留给了后代,也即是上面表没有 final 关键字修饰方法,有 clone() 方法,equals() 方法,finalize()...1、clone() 方法 字面意上看,这个方法被设计为克隆对象,返回一个和被克隆对象一模一样对象。这个方法被 protect 关键字修饰,说明只能被子类重写和调用。...,该类没有实际重写父 clone() 方法,只是简单调用了父 clone() 方法。...Java 设计这个方法只是想在垃圾回收器将对象内存清除前做一些其他自定义清理工作,在未来 JDK 版本,这个方法很有可能会被取消。

73230
领券