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

当子类从线程父类扩展时,我们是否重写run方法

当子类从线程父类扩展时,我们可以选择是否重写run方法。

线程是并发编程中的基本单位,它可以独立执行并发任务。在Java中,线程是通过继承Thread类或实现Runnable接口来创建的。

Thread类是Java提供的一个线程类,它包含了一个run方法,用于定义线程的执行逻辑。当我们创建一个线程对象并调用start方法时,线程会自动调用run方法来执行任务。

如果我们扩展Thread类创建子类,并且希望子类的线程执行逻辑与父类不同,我们可以选择重写run方法。重写run方法可以让子类定义自己的线程执行逻辑。

重写run方法的步骤如下:

  1. 在子类中创建一个与父类run方法签名相同的方法,即方法名为run,返回类型为void,不接受任何参数。
  2. 在该方法中编写子类特定的线程执行逻辑。

示例代码如下所示:

代码语言:java
复制
public class MyThread extends Thread {
    @Override
    public void run() {
        // 子类特定的线程执行逻辑
        System.out.println("子类线程执行逻辑");
    }
}

在上述示例中,我们创建了一个名为MyThread的子类,继承自Thread类,并重写了run方法。在run方法中,我们定义了子类特定的线程执行逻辑。

需要注意的是,如果我们选择不重写run方法,则子类将继承父类Thread的run方法,执行逻辑与父类相同。

在云计算领域中,线程的使用可以提高系统的并发性能和响应能力。线程可以用于处理并发请求、执行后台任务、提高系统吞吐量等场景。

腾讯云提供了一系列云计算产品,如云服务器、容器服务、函数计算等,可以帮助开发者轻松构建和管理云上应用。具体产品信息和介绍可以参考腾讯云官方网站:https://cloud.tencent.com/

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

相关·内容

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

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

6.2K10

JAVA基础面试总结

方法一:定义一个类实现Runnable接口,重写接口中的run()方法。在run()方法中加入具体的任务代码或处理逻辑。...调用Thread对象的start()方法,启动线程,如: 方法二:定义一个类去继承Thread父类,重写父类中的run()方法。在run()方法中加入具体的任务代码或处理逻辑。...4、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 不能,一个对象的一个synchronized方法只能由一个线程访问。 5、多线程有哪些状态?...ArrayList基于数组实现,遍历的性能高于LinkedList. 1.11 继承、重写、重载、多态 继承是子类使用父类的方法, 重写是继承后重新实现父类的方法。...LSP里氏替换原则:子类与父类对象间替换; OCP开闭原则:扩展开放,更改封闭; SRP单一职责原则:依赖不同的具体类,不要将不相关的方法放到一个具体类中,然后具体类再关联。

79180
  • 30道最常问的Java基础面试题

    构造器Constructor是否可被override**在讲继承的时候我们就知道父类的私有属性和构造方法并不能被继承,所以Constructor也就不能被override,但是可以overload,所以你可以看到一个类中有多个构造函数的情况...**重写:** 发生在父子类中,方法名、参数列表必须相同,返回值范围小于等于父类,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类;如果父类方法访问修饰符为private则子类就不能重写该方法。...**关于继承如下3点请记住:**子类拥有父类非private的属性和方法。子类可以拥有自己属性和方法,即子类可以对父类进行扩展。子类可以用自己的方式实现父类的方法。(以后介绍)。...因此,如果父类中只定义了有参数的构造方法,而在子类的构造方法中又没有用super()来调用父类中特定的构造方法,则编译时将发生错误,因为Java程序在父类中找不到没有参数的构造方法可供执行。...**对象的相等 比的是内存中存放的内容是否相等而引用相等 比较的是他们指向的内存地址是否相等。**25. 在调用子类构造方法之前会先调用父类没有参数的构造方法,其目的是?**帮助子类做初始化工作。

    30910

    请你详细说说类加载流程,类加载机制及自定义类加载器

    2.3、解析 我们知道,引用其实对应于内存地址。思考这样一个问题,在编写代码时,使用引用,方法时,类知道这些引用方法的内存地址吗?显然是不知道的,因为类还未被加载到虚拟机中,你无法获得这些地址。...3.2、类初始化时机 当虚拟机启动时,初始化用户指定的主类; 当遇到用以新建目标类实例的new指令时,初始化new指令的目标类; 当遇到调用静态方法或者使用静态变量,初始化静态变量或方法所在的类; 子类初始化过程会触发父类初始化...父类委托(双亲委派):先让父加载器试图加载该Class,只有在父加载器无法加载时该类加载器才会尝试从自己的类路径中加载该类。...\java\jdk\jre\lib\ext;C:\WINDOWS\Sun\Java\lib\ext //扩展类加载器的parant:null 从输出中验证了:系统类加载器的父加载器是扩展类加载器。...所以,为了不影响类的加载过程,我们重写findClass方法即可简单方便的实现自定义类加载。 2、实现自定义类加载器 基于以上分析,我们简单重写findClass方法进行自定义类加载。

    16710

    Java基础总结大全(1)

    否则,在父类中找成员变量,有则使用。 否则,报错。 B:成员方法 用子类对象使用一个方法时。 首先,在子类中找这个方法,有则使用。 否则,在父类中找这个方法,有则使用。 否则,报错。...重写需要注意: **子类方法的访问权限要大于等于父类方法的访问权限。 **静态只能重写静态。但是这种情况一般不会出现。...构造方法 **子类的实例化过程 ***子类创建对象时,会先去创建父类的对象。 默认是去调用父类的无参构造方法。...水(气态,液态,固态) (2)多态前提 A:存在着继承或者实现关系 B:有方法的重写 C:父类(接口)引用指向子类(实现)对象 (3)多态的好处和弊端: 好处:多态的存在提高了程序的扩展性和后期可维护性...这种返回没有意义,所以,我们会重写这个方法,显示类的成员变量信息。 E:boolean equals(Object obj) 用于比较两个对象的地址值是否相同。

    1.1K110

    JAVA面试题

    一般情况下是指一个父类引用指向了子类的对象,不同的子类对于同一个方法有不同的实现形。多态分为编译时多态—方法重载,和运行时多态---方法重写。...(2)equals是java顶层父类Object的方法,默认比较的是两个引用的地址是否相等,每个类都默认继承自Object,所以使用equals默认比较地址,但是开发人员可以在子类中重写该方法。...例如系统提供的System.out.println(); (2)重写是指在父子类中,子类重新定义父类的方法。重写时子类的方法名,参数,返回类型必须和父类的保持一致。访问权限不能比父类的方法低。...在程序中主要是指父类的引用指向子类的对象,当调用方法时是根据指向的对象类型调用相应的方法。多态根据执行的时刻分为编译时的多态性和运行时多态性。...运行:当线程获得了CPU的资源,开始执行线程就处于运行状态,执行run方法的方法体。

    42110

    Java基础总结大全(1)

    否则,在父类中找成员变量,有则使用。 否则,报错。 B:成员方法 用子类对象使用一个方法时。 首先,在子类中找这个方法,有则使用。 否则,在父类中找这个方法,有则使用。 否则,报错。...重写需要注意: **子类方法的访问权限要大于等于父类方法的访问权限。 **静态只能重写静态。但是这种情况一般不会出现。...构造方法 **子类的实例化过程 ***子类创建对象时,会先去创建父类的对象。 默认是去调用父类的无参构造方法。...水(气态,液态,固态) (2)多态前提 A:存在着继承或者实现关系 B:有方法的重写 C:父类(接口)引用指向子类(实现)对象 (3)多态的好处和弊端: 好处:多态的存在提高了程序的扩展性和后期可维护性...这种返回没有意义,所以,我们会重写这个方法,显示类的成员变量信息。 E:boolean equals(Object obj) 用于比较两个对象的地址值是否相同。

    89850

    java学习与应用(3.3)--异常、多线程、lambda简

    最终交给JVM中断处理,在方法声明时候使用,格式如:throws AAAException,...写在方法的声明处。异常必为Exception或子类,抛出时候有子父类关系只声明父类。...由于finally中的代码必定执行,因此需要避免写return语句消除和方法中其他位置的冲突。 多异常捕获时(一次捕获多次处理)需要将catch的子类异常先写,父类后写。...子类重写父类方法抛出异常时,需要声明父类异常,父类异常的子类,或者不抛出异常。父类没有抛出异常时,子类不抛出异常,或只能使用捕获处理,不能throws抛出。...使用Thread类的子类创建线程,重写其中的run方法设置线程任务,创建其对象,调用对象中的start方法启动。结果是和main线程一起,进行并发执行(抢占式调度,由JVM控制线程)。...Runable接口也可以创建线程,实现该接口,重写其中run方法设置任务,创建自定义的对象,使用Thread带入该自定义对象,通过Thread的start开启多线程。

    64220

    Java基础面试题

    ---- ① 重写发生在父类子类中,若子类方法想要和父类方法构成重写关系,则它的方法名、参数列表必须与父 类方法相同。...② 返回值要小于等于父类方法,抛出的异常要小于等于父类方法,访问修饰符则要大 于等于父类方法。 ③ 若父类方法的访问修饰符为private,则子类不能对其重写。...构造方法能不能重写 构造方法不能重写。 因为构造方法需要和类保持同名,而重写的要求是子类方法要和父类方法保持同 名。...通过继承Thread类来创建并启动线程的步骤如下: 定义Thread类的子类,并重写该类的run()方法,该run()方法将作为线程执行体。 创建Thread子类的实例,即创建了线程对象。...BlockingQueue具有一个特征:当生产者线程试 图向BlockingQueue中放入元素时,如果该队列已满,则该线程被阻塞;当消费者线程试图从 BlockingQueue中取出元素时,如果该队列已空

    31640

    面试官问我:创建线程有几种方式?我笑了

    1、继承 Thread 类 通过继承 Thread 类,并重写它的 run 方法,我们就可以创建一个线程。 首先定义一个类来继承 Thread 类,重写 run 方法。...再看继承 Thread 类的方式,我们同样需要调用 Thread 的 start 方法来启动线程。由于子类重写了 Thread 类的 run 方法,因此最终执行的是这个子类的 run 方法。...其实,我们拆解一下以上代码就会知道,这是一个继承了 Thread 父类的子类对象,重写了父类的 run 方法。...若假设子类没有实现 run 方法,那么就会去父类中寻找 run 方法,而父类的 run 方法会判断是否有 Runnable传过来(即判断target是否为空),现在 target 不为空,因此就会执行...透过现象看本质,我们就会发现,它不过就是考察类的父子继承关系,子类重写了父类的方法就会优先执行子类重写的方法。 和线程结合起来,如果对线程运行机制不熟悉的,很可能就会被迷惑。

    4.4K10

    Java基础第一阶段知识点,招实习的面试官都在问这些

    子类能继承父类的哪些变量和方法?...b) 如果子类和父类不在同一个包中,那么,子类继承了父类的protected,public 成 员变量做为子类的成员变量,并且继承了父类的protected,public 方法为子类的方法。 30....子类重写父类的方法,可否降低访问权限? a) 不可以降低。 31. final关键字可以用来修饰什么?分别起什么作用? a) final可以修饰类,这样的类不能被继承。...a) 假设,A 类是B 类的父类,当我们用子类创建一个对象,并把这个对象的引用放 到父类的对象中时,我们称这个父类对象是子类对象的上转型对象。 34. 上转型对象可以操作什么?不可以操作什么?...实现多线程的两种方法? a) 从Java.lang.Thread类派生一个新的线程类,重写它的run()方法。 b) 实现Runnable接口,重写Runable接口中的run()方法。 56.

    58790

    万丈高楼平地起,爆肝21000字Java基础知识总结,收藏起来总有用得着的时候

    如何区分重载:当函数同名时,只看参数列表。和返回值类型没关系。 重写:父类与子类之间的多态性,对父类的函数进行重新定义。...如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。...当子父类中出现了一模一样的方法时,建立子类对象会运行子类中的方法。好像父类中的方法被覆盖掉一样。所以这种情况,是函数的另一个特性:重写 3:构造函数。 发现子类构造函数运行时,先运行了父类的构造函数。...(举个例子,在父类中是public的方法,如果子类中将其降低访问权限为private,那么子类中重写以后的方法对于外部对象就不可访问了,这个就破坏了继承的含义) 2:覆盖时,要么都静态,要么都不静态。...多态的弊端:当父类引用指向子类对象时,虽然提高了扩展性,但是只能访问父类中具备的方法,不可以访问子类中特有的方法。

    48111

    Java基础知识总结

    如何区分重载:当函数同名时,只看参数列表。和返回值类型没关系。 重写:父类与子类之间的多态性,对父类的函数进行重新定义。...如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。...当子父类中出现了一模一样的方法时,建立子类对象会运行子类中的方法。好像父类中的方法被覆盖掉一样。所以这种情况,是函数的另一个特性:重写 3:构造函数。 发现子类构造函数运行时,先运行了父类的构造函数。...(举个例子,在父类中是public的方法,如果子类中将其降低访问权限为private,那么子类中重写以后的方法对于外部对象就不可访问了,这个就破坏了继承的含义) 2:覆盖时,要么都静态,要么都不静态。...多态的弊端:当父类引用指向子类对象时,虽然提高了扩展性,但是只能访问父类中具备的方法,不可以访问子类中特有的方法。

    1.3K31

    多线程实现的两种方法及其区别

    MyThread extends Thread{ // 继承Thread类 @Override public void run() { // 重写run方法...方法中的bb输完之后才输出aaaaaaaaa的 两种方式的区别 查看源码的区别: 1、继承Thread:由于子类重写父类的run(),当调用start()时,直接找子类的run()方法 2、实现Runnable...接口:Thread的构造函数中传入了Runnable引用,成员变量记住它,start()调用Thread中的run()方法时,判断成员变量Runnable的引用是否为空,不为空则在Thread的run(...继承Thread:(首选这个,如果有了父类就用接口) 好处是:直接使用Thread类中的方法,代码简单 弊端是:如果已经有了父类,就不能使用这种方法 实现Runnable接口: 好处是:即使自己定义的线程类有了父类也没有关系...,因为有了父类也可以实现接口,而接口是可以多实现的 弊端是:不能直接使用Thread类中的方法,需要先获取到线程对象后,才能得到Thread的方法,代码复杂

    39110

    Java基础第一阶段知识点,招实习的面试官都在问这些

    子类能继承父类的哪些变量和方法?...b) 如果子类和父类不在同一个包中,那么,子类继承了父类的protected,public 成 员变量做为子类的成员变量,并且继承了父类的protected,public 方法为子类的方法。 30....子类重写父类的方法,可否降低访问权限? a) 不可以降低。 31. final关键字可以用来修饰什么?分别起什么作用? a) final可以修饰类,这样的类不能被继承。...a) 假设,A 类是B 类的父类,当我们用子类创建一个对象,并把这个对象的引用放 到父类的对象中时,我们称这个父类对象是子类对象的上转型对象。 34. 上转型对象可以操作什么?不可以操作什么?...实现多线程的两种方法? a) 从Java.lang.Thread类派生一个新的线程类,重写它的run()方法。 b) 实现Runnable接口,重写Runable接口中的run()方法。 56.

    51510

    继承和多态

    1) 继承可以把父类的所有功能都直接拿过来,这样就不必重零做起,子类只需要新增自己特有的方法,也可以把父类不适合的方法覆盖重写    子类通过继承获得了所有父类的方法(包括__init__方法...,如果父类的该方法有参数,则子类创建实例时也要传参数)   2) 当子类和父类都存在相同的方法时,子类覆盖了父类的该方法,运行时,总是会调用子类方法,这就是就是多态   3) 继承还可以一级一级地继承下来...,就好比从爷爷到爸爸、再到儿子这样的关系     而任何类,最终都可以追溯到根类object,这些继承关系看上去就像一颗倒着的树 关于多态   调用方只管调用,不管细节,而当新增一种子类时,只要确保方法编写正确...,不用管原来的代码是如何调用的   说白了,就是不管怎么追加子类,也不需要修改原来的代码   这就是著名的"开闭"原则:     对扩展开放:允许子类重写方法函数     对修改封闭...:不重写,直接继承父类方法函数 静态语言和动态语言   如果一个方法,要传入的参数是A类对象,方法内部需要调用该参数的run()方法,则:     对于Java这样的动态语言,则一定要传入A类或者其子类对象

    39320

    【Java面试总结】Java基础(上篇)

    重载和重写的区别 重载就是同样的一个方法能够根据输入数据的不同,做出不同的处理 重写就是当子类继承父类的相同方法,输入数据一样,但是要做出有别于父类的响应时,就要覆盖父类方法 重载 发生在同一个类中,方法名必须相同...private/final/static,则子类就不能重写该方法,但是被static修饰的方法能够被再次声明 构造方法无法被重写 综上:重写就是子类对父类的重新改造,外部样子不能改变,内部逻辑可以改变...注意: 子类拥有父类对象所有的属性和方法(包括私有属性和私有方法),但是父类的私有属性和方法,子类是无法访问,只是拥有; 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展; 子类可以用自己的方法实现父类的方法...因此,如果父类中只定义了有参数的构造方法,而在子类的构造方法中又没有用super()来调用父类中特定的构造方法,则编译时将发生错误,因为Java程序在父类中找不到没有参数的构造方法可供执行。...对象相等,比的是内存中存放的内容是否相等; 而引用相等,比较的是他们指向的内存地址是否相等。 25. 在调用子类构造方法之前会先调用父类没有参数的构造方法,其目的是? 帮助子类做初始化工作。

    55530

    Java基础中的面试题(一),你能接几招(附答案(不带答案的面试题都是耍流氓))

    方法的重写(override): 说的是父类和子类中的事,子类中出现了和父类中一模一样的方法,就是重写的方法,可以在子类的方法上加 @Override注解验证。...关于重写有一些特殊情况需要注意: 私有和静态方法不能重写。 子类重写父类中的方法访问权限不能更低。子类抛出的异常不能比父类大。...如果没有重写equals方法,那么调用的时候相当于都是在调用父类Object中的equals方法, Object类中的equals就是使用 == 实现的。==在连接基本数据类型的时候,比较的是值。...我们可以重写equals方法。 两个方法都可以用来比较对象是否相同。...实现多线程的方式 继承Thread类,重写run方法,调用start() new Thead(()->{}).start(); 实现Runnable接口,重写run方法,创建Thread对象

    21510

    java面试(基础-1)

    重写 重写是子类对父类的允许访问的方法的实现过程进行重新编写,发生在子类中,方法名、参数列表必须相同,返回值范围小于等于父类,抛出的异常范围小于等于父类,访问修饰符范围大于等于父类。...另外,如果父类方法访问修饰符为 private 则子类就不能重写该方法。也就是说方法提供的行为改变,而方法的外貌并没有改变。 11....关于继承如下 3 点请记住: 子类拥有父类对象所有的属性和方法(包括私有属性和私有方法),但是父类中的私有属性和方法子类是无法访问,只是拥有。 子类可以拥有自己属性和方法,即子类可以对父类进行扩展。...因此,如果父类中只定义了有参数的构造方法,而在子类的构造方法中又没有用 super() 来调用父类中特定的构造方法,则编译时将发生错误,因为 Java 程序在父类中找不到没有参数的构造方法可供执行。...对象的相等,比的是内存中存放的内容是否相等。而引用相等,比较的是他们指向的内存地址是否相等。 25. 在调用子类构造方法之前会先调用父类没有参数的构造方法,其目的是? 帮助子类做初始化工作。

    59160
    领券