题解 | #重写父类方法#

重写父类方法

http://www.nowcoder.com/practice/aec55d55435b4af69e625d7072af3fa1

题意整理

  • 给定一个Base类,若干get方法,以及一个sum方法,用于计算x和y的和。
  • 要求在Base的子类里重写getX()方法,使得sum方法返回x10+yx*10+y

方法一(调用父类构造函数)

1.解题思路

  • 调用父类方法获取X、Y的值。
  • 在子类中,利用X的值重写getX(),变为原来的10倍。

动图展示: alt

2.代码实现

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextInt()) {
            int x = scanner.nextInt();
            int y = scanner.nextInt();
            Sub sub = new Sub(x, y);
            System.out.println(sub.sum());
        }
    }

}

class Base {

    private int x;
    private int y;

    public Base(int x, int y) {
        this.x = x;
        this.y = y;
    }

    public int getX() {
        return x;
    }

    public final int getY() {
        return y;
    }

    public final int sum() {
        return getX() + getY();
    }

}

class Sub extends Base {

    //利用父类构造函数,初始化X、Y的值
    public Sub(int x, int y) {
        super(x, y);
    }

    //将X的值变为原来的10倍
    public int getX() {
        return 10*super.getX();
    }

}

3.复杂度分析

  • 时间复杂度:只需进行一次运算,所以时间复杂度为O(1)O(1)
  • 空间复杂度:不需要额外的空间,所以空间复杂度为O(1)O(1)
xqxls的题解 文章被收录于专栏

牛客题解

全部评论

相关推荐

07-14 13:37
重庆大学 C++
点赞 评论 收藏
分享
05-26 10:24
门头沟学院 Java
qq乃乃好喝到咩噗茶:其实是对的,线上面试容易被人当野怪刷了
找工作时遇到的神仙HR
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-09 12:05
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务