先讲一讲方法的重写(覆盖)

 在java中方法的重写是建立在java类的三大特性之一:继承性的基础之上的,没有继承性也就不能谈方法的重写。方法的重写是当程序中父类的某一个方法并不能满足子类的需求时,子类可以重新定义该方法的内容与功能来满足子类的需求的一种操作。

所谓方法的覆盖(重写)即父类中有一个方法在子类中有一个和父类一模一样的方法(注意哈我这里又是父类又是

子类的当然是需要继承的(extends))

下面既有方法的重写也有方法的调用未被重写之前的方法(还有注意重写方法请不要在main方法中重写main方法是入口即调用这些方法的)

想直接看解决的请跳过 方法重写知识的讲解

java子类属性覆盖父类属性 java子类覆盖父类方法_父类

可能大家看见super我不知道大家学到继承多态这的时候有没有学到super关键字这里就

浅讲一下,所谓super就是可以调用父类中的构造方法以及普通方法

语法格式也就是super.方法名变量名

super()无参构造方法

super(参数)即调用(引用)有参构造方法(构造器)

这种图忘带执行结果了,别着急往下看

java子类属性覆盖父类属性 java子类覆盖父类方法_java子类属性覆盖父类属性_02

不搞那些高级的 就单纯的输出文字给大家伙个思路

abstract class father {
    //定义一个普通方法
    public void common(){
        System.out.println("这是父类的普通方法");
    }

}

 class chile extends father {
    //重写这个普通方法
    public void common(){
        System.out.println("这是重写父类的普通方法的方法");
    }
    //调用父类的方法也就是common 可能你们会认为父类中的方法不是被重写了吗。
     //不错确实是重写了,当不代表就不能使用父类中的被重写之前的方法了
     //我们使用在子类创建一个普通方法,来使用super关键字来调用父类中的方法
     public void beforeWay(){
        super.common();
        
     }
     //现在来输出看看
     public static void main(String[] args) {
         //使用多态,也可以不使用 我比较习惯使用多态
         father c = new chile();
         c.common();
         chile c1 = new chile();
         c1.beforeWay();
     }

}