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(); } }