解决方案 »

  1. cvm
  2. 属性没有重写,名字只能代表编程角度的命名一样,其实会继承。楼主这样试试:public int getNumber() {
        
            number++;
            return super.number;
        }当然要改下父类 number 作用域
      

  3. 你输出的是子类的number   因为没有初始化,int类型默认为0,加1输出了1
      

  4. s指向子类,调用子类的getNumber方法,奥!!!懂了!!!
    所以,父类的number是20,若调用父类的getNumber方法,返回值为21,。
    但是,子类有getNumber方法了,调用后返回值为1。
    可不可以问一下,关于getNumber方法,是否叫做重写?
      


  5. 在另一个题目中看到了这样一段话,“优先级由高到低依次为:this.getNumber(O)、super.getNumber(O)、this.getNumber((super)O)、super.getNumber((super)O)”,这里,this指引用变量,类型为SuperClass,故调用SuperClass类中的getNumber方法,返回值为21。请问错在哪里?