方法重写

什么是方法重写

 方法重写是父类与子类多态性的一种表现,如果子类中出现了一个名称与父类中的名称一样的方法,那么子类中的方法称作对父类中方法的重写

举个例子

class A{

    public void add()

    {

       System.out.println("add");

    }

}

    public class B extends A{

    public void add()

    {

       System.out.println("方法重写add");

    }

    public static void main(String[] args) {

       A a=new B();

       a.add();

    }

}

输出结果为 方法重写add

假如  A a=new A();

a.    add();

输出就是:add

实例化的是哪个对象就调用哪个对象的方法

 

假如这么写

class A{

    public int add()

    {

       System.out.println("add");

         return 0;

    }

}

    public class B extends A{

    public void add()

    {

       System.out.println("方法重写add");

    }

}

这样写 就会出现编译问题

 

因为子类中出现了add方法  父类中也出现了add方法  编译器就会

认为是方法重写 那么方法重写 返回值的类型就必须一摸一样

 

方法重写的时候  子类与父类中方法的结构必须一致 就算添加 static等修饰符也要同步添加  安全修饰符也要同步  不能一个public 一个private  但是你可以在子类中加上final关键字

也就是说:子类与父类中方法的结构必须一摸一样 除了方法体和final 关键字

 

 

 

原文地址:https://www.cnblogs.com/liaomin416100569/p/9332109.html