java类加载顺序笔试题之出现return返回值前面加-的情况(个人理解)

前几天面试遇到的一道题目,因为基础太差遇到类加载题目必挂,所以回来后就在好好琢磨。

下面是我的一些自己的理解,可能会有一些名词命名说的不规范,如有错误的地方请指出来,感谢。

class B {
	public int f(int i) {
		return i + i;
	}

	public int f(int i, int j) {
		return i + j;
	}

	public int f(char c) {
		return c;
	}
}

public class Test extends B {
	public int f(int i, int j) {
		return super.f(i, j);
	}

	public int f(int j) {
		return -j;
	}

	public static void main(String[] args) {
		B x = new Test();
		System.out.println(x.f(5, 10) + " " + x.f(4) + " " + x.f('A'));
	}
}

步骤:

  1. new Test(); 但子类中没有构造方法,父类也没有,所以这个的作用仅仅是让下面的println()里面的代码可以使用
  2. x.f(5,10)因为子类重写了父类的方法但又super.f()指向离自己最近的一个父类调用父类的此方法,找到父类中的f()方法i+i等于带入进去的5和10相加等于15,所以输出15
  3. x.f(4)同样是子类重写了父类的方法,所以只看子类即可,这里需要注意return返回的是【-】 注意里面的减号 -  所以不管是带入什么值,前面都会加上-这个符号,所以输出的为-4
  4. x.f('A')这个就没有重写了 看父类里面的这个方法,这个考查的就是char方法是自动转化为Unicode编码,A对应的就是65,所以输出65
  5. 结果为15 -4 65

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值