Java重写toString()和compareTo方法

描述

方法重写,也叫做方法覆盖。

概念:在程序中,子类可以继承父类中的方法,而不需要重新编写相同的方法,但有时子类想对父类的方法做一定的修改,即为子类重写父类的方法。

要求:两个方法同名,返回类型一致,参数类型相同。

权限:子类>=父类(private<默认修饰符<protected<public)。

注意:父类的私有(private)方法、静态方法、构造方法都不能被重写。

另外:方法重写时最好在方法的前面加上@Override,除了方便阅读外,编译器可以帮助你检查方法的正确性。

难度

一般

输入示例

005

oyou

9500

输出示例

001,zhang,5000.0
003,zhao,6000.0
004,song,6500.0
002,li,8000.0
005,oyou,9500.0

完成代码

import java.util.Arrays;
import java.util.Scanner;

public class Demo {
    public static void main(String[] args) {
        String id;
        String name;
        double salary;
        Employee[] es = new Employee[5];
        es[0] = new Employee("001", "zhang", 5000);
        es[1] = new Employee("002", "li", 8000);
        es[2] = new Employee("003", "zhao", 6000);
        es[3] = new Employee("004", "song", 6500);

        Scanner scn = new Scanner(System.in);
        id = scn.next();
        name = scn.next();
        salary = scn.nextDouble();
        es[4] = new Employee(id, name, salary);

        Arrays.sort(es);

        for (Employee e : es) {
            System.out.println(e);
        }
    }
}
class Employee implements Comparable<Employee>{
    private String id;
    private String name;
    private double salary;
    public Employee(String id, String name, double salary) {
        this.id=id;
        this.name=name;
        this.salary=salary;
    }
    @Override
    public String toString(){
        return id+","+this.name+","+this.salary;
    }
//按薪水有少到多排序 @Override
public int compareTo(Employee e){ if(this.salary>e.salary){ return 1; }else if(this.salary<e.salary){ return -1; }else{ if(this.salary>e.salary){ return -1; }else if(this.salary<e.salary){ return 1; }else{ return 0; } } } }

 

posted @ 2020-05-06 16:59  哦呦aholic  阅读(668)  评论(0编辑  收藏  举报