是这样的,子类必须明确重新加载该方法,才能使方法中使用的参数为子类当前所使用的参数,这个可以在创建父类的时候就能确定好么?

是这样的,子类必须明确重新加载该方法,才能使方法中使用的参数为子类当前所使用的参数,这个可以在创建父类的时候就能确定好么?
img


```java
public class test{
        public static void main(String[] args) {
            Animal a = new Animal();
            Cat c = new Cat();
            MiaoMiao m = new MiaoMiao();
            a.eat();
            c.eat();
            m.eat();
        }
    }
    class Animal{
        public void eat(){
            int a=7;
            System.out.println("小动物吃啥都行~"+a);
        }
    }
    class Cat extends Animal{
            int a=10;
        public void eat(){
            System.out.println("小动物吃啥都行~"+a);
        }
    }
    class DingDang extends Cat{
        public void studyJava(){
            System.out.println(a);
        }
    }
    //3.2创建孙子类MiaoMiao,并与Cat建立继承关系
    class MiaoMiao extends Cat{
    int a=22;
    }

```

miaomiao类并没有重写eat方法,因此miaomiao类的对象调用eat方法时只能调用父类cat的eat方法。
而miaomiao类的属性a是没有办法被父类获得的,因为继承是子类继承父类,获得父类的方法和属性。
若子类的属性能被父类获取到,那么同名的两个变量a该取哪个值呢?
所以就是这样的,必须重写方法,不然就是用父类的方法。