Java基础-方法重载和方法重写的区别

什么是java方法重载

 

(1) 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。

重载Overloading是一个类中多态性的一种表现。

(2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。

调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性。

(3) 重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准。

如下:

package hwc.java.domain;

public class First {
public static void main(String[] args) {
new Fox().hwc_1(23);
new Fox().hwc_1("hah");
new Fox().hwc_1(232.2);
}
}
class Fox{
public void hwc_1(int a){
System.out.println(a+" "+"我是int 的");
}
public void hwc_1(String s){
System.out.println(s+" "+"我是 String 的");
}
public void hwc_1(Double b){
System.out.println(b+" "+"我是doble 的");
}

}

输出 结果是

23 我是int 的
hah 我是 String 的
232.2 我是doble 的

方法 的重载 指向了面向 对象 编程里面的重要的组成 部分 就是 多态!

什么是java方法重写

方法的重写:

1、在子类中可以根据需要对从基类中继承来的方法进行重写。

2、重写的方法和被重写的方法必须具有相同方法名称、参数列表和返回类型。

3、重写方法不能使用比被重写的方法更严格的访问权限。

如下:

class Person{
    private int age;
    private String name;

    public void setAge(int age){
        this.age = age;
    }
    public void setName(String name){
        this.name = name;
    }
    public int getAge(){
        return age;
    }
    public String getName(){
        return name;
    }

    public String getInfo(){
        return "Name is:"+name+",Age is "+age;
    }
}
class Student extends Person{
    private String school;

    public void setSchool(String school){
        this.school = school;
    }
    public String getSchool(){
        return school;
    }
    public String getInfo(){
        return "Name is:"+getName()+",Age is "+getAge()+",School is:"+school;
    }
}
public class TestOverRide{
    public static void main (String args[]){
        Student student = new Student();
        Person person = new Person();
        person.setAge(1000);
        person.setName("lili");

        student.setAge(23);
        student.setName("vic");
        student.setSchool("shnu");

        System.out.println(person.getInfo());
        System.out.println(student.getInfo());
    }
}
着同样指向了面向对象编程 了一个 核心思想之一的  继承
上一篇:[Java 基础]方法


下一篇:0505 Scrum 项目1.0