小芳同学的错题总结(十四)

1.题目:

现有:
public class Passer{
         static final int X=5;
         public static void main(String [] args){
               new Passer().go(X);
               System.out.print(X);
         }
         void go(int X){
              System.out.print(X++);
         }
}
结果是什么?

A 55  B 56  C 65  D 66

答案:A

真的是,又掉坑里去了,悲伤逆流成河都不能表达我内心的悲伤。static final int X=5;其实这句代码已经提醒我们这里有坑了,用final关键字修饰的变量一经赋值就不能再改变了。 new Passer().go(X);中指的是将static final int X=5;的值给了int X,在函数go中对int X变量进行怎样更改都不会影响 final int X的值。 System.out.print(X++);因为是后置自增所以先输出后自增,输出5,   System.out.print(X);调用go函数不会影响它的值,所以还是输出5;故答案为A。

2.static关键字可以修饰类,该类就是静态内部类。static修饰类时就只有这一种情况哦。


3.

class Super {

           public Integer getLenght() {

                 return new Integer(4);

          }

}

public class Sub extends Super {

                 public Long getLenght() {

                       return new Long(5);

                 }

       public static void main(String[] args) {

                  Super sooper = new Super();

                 Sub sub = new Sub();

                System.out.println(sooper.getLenght().toString() + "," + sub.getLenght().toString() );

      }

}

输出是什么?

A 4,4   B  4,5   C  5,4  D 编译错误

答案:D

这题涉及的时方法重写的概念,不得不说细节的重要性,方法重写要求两个方法的返回值类型、方法名、参数列表相同,对于访问权限,子类的权限应大于或等于父类中的权限,最好跟父类权限一致较好。这题 public Integer getLenght()和 public Long getLenght() 你看出哪个地方的错误了吗,对,就是返回值类型,所以本题会出现编译错误。

4.子类可以通过super关键字调用父类的方法,属性(非私有的哦)

宝剑锋从磨砺出,梅花香自苦寒来。--冯梦龙

加油!小芳同学

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值