首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有人能解释一下为什么低于交货期吗?

有人能解释一下为什么低于交货期吗?
EN

Stack Overflow用户
提问于 2020-06-14 07:59:41
回答 2查看 1.4K关注 0票数 1

家长班:

代码语言:javascript
复制
public class Parent {
public void run()
{
    walk();
    System.out.println("Parent run");
}

public void walk()
{
    System.out.println("Parent walk");
}

儿童班:

代码语言:javascript
复制
public class Child extends Parent {

public void run()
{
    super.run();
    System.out.println("child run");
}

public void walk()
{
    super.walk();
    System.out.println("child walk");
}



public class FirstJava {
public static void main(String[] a) {
    Child c=new Child();
    c.run();
}

我的价格低于市盈率

父母步行

儿童步行

父运行

子跑

在这里,当我称步行()为儿童散步()。为什么不陪父母散步呢?在调用walk()时,它引用的对象是哪个?为什么?有人解释原因吗??为什么它同时调用子方法和父方法。

EN

回答 2

Stack Overflow用户

发布于 2020-06-14 08:14:23

在……里面

代码语言:javascript
复制
 Child c=new Child();
 c.run();

要应用与c中值类型相对应的run,因为c值和运行都是在其子值上定义的,因此调用在子上定义的操作run为:

代码语言:javascript
复制
public void run()
{
    super.run();
    System.out.println("child run");
}

super.run()应用与父类对应的操作,因为您调用的子类的父类是父类,并在其父类上定义了运行:

代码语言:javascript
复制
public void run()
{
    walk();
    System.out.println("Parent run");
}

根据子实例的实际类型应用操作遍历,因此您可以调用:

代码语言:javascript
复制
public void walk()
{
    super.walk();
    System.out.println("child walk");
}

像以前一样,因为调用父级操作的super

代码语言:javascript
复制
public void walk()
{
    System.out.println("Parent walk");
}

打印父母走,然后你走回来,在孩子走,打印子走,然后回来在父运行打印父运行,然后回来在子运行打印子运行

编辑后

在这里,当我叫

()它是为了走路()的孩子。为什么不陪父母散步呢?在调用walk()时,它引用的对象是哪个?为什么?

正如我已经说过的,这是因为被调用的方法是由实例的真实类型确定的(在执行时),在这种情况下,实例是一个子实例,所以被调用的方法是在子上定义的遍历,而不是在父上定义的。当然,如果没有对儿童的步行进行定义,那么它将是对父母的定义。所有方法都应用于您在main中创建的唯一实例,并作为一个子实例。

当然,如果walk是类父类(例如静态的)的一种方法,而不是它的实例,那么在父类运行时更改all和walk()的方法就是父类的遍历。但是在您的代码中情况并非如此,因此实例的真正类型很重要。

还请注意,执行过程将同样修改main,使其具有:

代码语言:javascript
复制
public class FirstJava {
public static void main(String[] a) {
    Parent c=new Child();
    c.run();
}

因为即使c被声明为父级,它的值也是一个子值

票数 3
EN

Stack Overflow用户

发布于 2020-06-15 06:21:34

如果重写其子方法中的父方法,子对象将始终使用重写版本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62369889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档