首页
学习
活动
专区
工具
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单一职责原则:依赖不同的具体,不要将不相关的方法放到一个具体中,然后具体再关联。

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

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

    29510

    Java基础总结大全(1)

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

    1.1K110

    Java基础总结大全(1)

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

    89150

    JAVA面试题

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

    41310

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

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

    63520

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

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

    4.1K10

    Java基础面试题

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

    31240

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

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

    48111

    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.

    50710

    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.

    58290

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

    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的方法,代码复杂

    38010

    Java基础知识总结

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

    1.3K31

    继承和多态

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

    38720

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

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

    54930

    关于Java基础的34个问题

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

    1.7K50

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

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

    20810

    异常、线程

    package com.itheima.demo03.Exception; /* 子的异常: -如果抛出了多个异常,子类重写方法,抛出和相同的异常或者是异常的子类或者不抛出异常...-方法没有抛出异常,子类重写方法也不可抛出异常,此时子类产生该异常,只能捕获处理,不能声明抛出 注意: 异常什么样,子类异常就什么样 */ public class Fu {...,抛出异常的子类 public void show02() throws ArrayIndexOutOfBoundsException{ } //子类重写方法,不抛出异常...public void show03() { } /* 方法没有抛出异常,子类重写方法也不可抛出异常 */ //public void show04...java.lang.Thread:是描述线程我们想要实现多线程程序,就必须继承Thread 实现步骤: 1.创建一个Thread 2.在Thread子类重写Thread中的run方法

    75920

    Java面向对象基础(封装继承多态)【1】

    英文字面意思理解,extends的意思是“扩展”。子类扩展。现实世界中的继承无处不在。比如: ? 上图中,哺乳动物继承了动物。...3.Java中没有多继承,接口有多继承。 4.子类继承,可以得到的全部属性和方法 (除了的构造方法),但不见得可以直接访问(比如,私有的属性和方法)。...override 子类通过重写方法,可以用自身的行为替换的行为。...方法重写是实现多态的必要条件。 方法重写需要符合下面的三个要点: 1.“==”: 方法名、形参列表相同。 2.“≤”:返回值类型和声明异常类型,子类小于等于。...如String、Date、包装等,重写了Object的equals方法,调用这些的equals方法, x.equals (y) ,x和y所引用的对象是同一对象且属性内容相等(并不一定是相同对象

    68240
    领券