上代码:
public void test1(int x,int y){//--------1--------- }
public void test1(int x,int y,int z){//--------2---------}
public void test1(int x,String y){//--------3--------- }
public void test1(String y,int x){//--------4--------- }
public String test1(int x,int y){//--------5--------- return null; }
1,2参数数量不同;1,3参数类型不同;3,4参数顺序不同;这些情况都算重载。
1,5返回值类型不同;这情况不算重载。
重写定义:通常,派生类继承基类的方法,因此,在调用对象继承方法的时候,调用和执行的是基类的实现.但是,有时需要对派生类中的继承方法有不同的实现.
例如,假设动物类存在"跑"的方法,从中派生出马和狗,马和狗的跑得形态是各不相同的,因此同样方法需要两种不同的实现,这就需要"重新编写"基类中的方法.
上代码:
public class Animal {
public void run(){
System.out.println("我是动物我会跑!");
}
public static void main(String[] args){
//这里有个知识点,就是里氏代换原则(看不懂的同学,请多多百度或google)
//实例化一个动物类
Animal animal = new Animal();
//实例化一个马类
Animal horse = new Horse();
//实例化一个鸡类
Animal chicken = new Chicken();
//实例化一个鸟类
Animal bird = new Bird();
animal.run();
horse.run();
chicken.run();
bird.run();
}
}
//一个方法有@Override,一个方法没有@Override,在这我不给答案,各位同学自己想想哈
class Horse extends Animal{
@Override
public void run(){
System.out.println("我是马,我继承了动物类,重写了run方法,我用四条腿跑!");
}
}
class Chicken extends Animal{
public void run(){
System.out.println("我是鸡,我继承了动物类,重写了run方法,我用二条腿跑!");
}
}
class Bird extends Animal{