方法重载、方法重写、构造方法的含义及使用 方法重载、方法重写、构造方法的含义及使用

1.什么是方法重载

  a.方法重载是静态多态,是编译时的多态

  b.发生在一个类里面,方法名相同,但参数个数或种类不同的方法之间的联系方式,称之为方法重载

  c.使你的程序变的更灵活

  代码示例演示:

  

/**
 * Created by Pres_cheng on 2016/8/25.
 * 方法重载演示
 */
public class Caculator {
    public int add(int x, int y) {
        return x + y;
    }

    public int add(int x, int y, int z) {
        return x + y + z;
    }

    public float add(float x, float y) {
        return x + y;
    }

    public int add(int... value) {
        int temp = 0;
        for (int i=0; i<value.length; i++){
            temp+=value[i];
        }
        return temp;
    }

    public static void main(String[] args) {
        //实例化Caculator对象
        Caculator caculator = new Caculator();
        System.out.println(caculator.add(1, 2));
        System.out.println(caculator.add(1, 2, 3));
        System.out.println(caculator.add(1.2f, 2.3f));
        System.out.println(caculator.add(1, 2, 3, 4, 5, 6, 7, 8, 9, 10));
    }
}

2什么是.方法重写

  a.方法重写是动态多态,是运行时多态

  b.发生在父子类之间,子类覆盖父类方法,覆盖后子类的方法和父类的方法名相同、参数的个数及类型相同。这种关系称为方法重载。

  代码示例演示:

  Car类

  

public class Car {
    public void run (){
        System.out.println("car run");
    }
}

  Motorcycle类

  

public class Motorcycle extends Car{
    @Override
    public void run() {
        System.out.println("motorcycle run");
    }
}

  Bicycle类

  

public class Bicycle extends Car{
    @Override
    public void run() {
        System.out.println("bicycle run");
    }
}

  Main类

  

public class Mian {
    public static void main (String []args){
        Car car =new Car();
        car.run();

        Motorcycle motorcycle = new Motorcycle();
        motorcycle.run();

        Car bicycle = new Bicycle();
        bicycle.run();
    }
}

 3.什么是构造方法

  a.构造方法是类中特有的方法,在实例化对象时可以直接调用此方法

  b.构造方法可以是:默认构造方法,自定义构造方法

  c.构造方法和普通方法的调用顺序:如果实例化该类,先调用构造方法,在调用普通方法

  代码示例演示:

  People类

  

public class People {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public static void talk(){
        System.out.println("people talk");
    }

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

    //默认构造方法
    public People(){
        System.out.println("default People");
    }
    //自定义构造方法
    public People(String name,int age){
        System.out.println("custom People");
        this.name =name;
        this.age = age;

    }
}

  Main类

  

public class Main {
    public static void main(String[] args) {
        //调用默认构造方法
        People people =new People();
        //调用自定义构造方法
        People people1 =new People("pres_cheng",22);
        //通过接口获取封装的name,age属性值
        System.out.println(people1.getName());
        System.out.println(people1.getAge());
        //调用静态方法,特殊:静态方法可在构造方法之前调用
        People.talk();
        //调用普通方法
        people.run();
    }
}
 
原文地址:https://www.cnblogs.com/prescheng/p/5808250.html