JAVA 基础细节汇总(持续更新中....)

本文探讨了Java中子类重写父类方法时属性的使用规则,整数类型及其包装类的比较特性,多维数组的特点,以及方法重载时参数类型匹配的规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、子类重定义父类的方法,同时子类拥有和父类相同的属性,使用属性的规则是:如果实际执行的是子类方法就使用子类属性,执行的是父类方法就使用父类属性。属性没有重定义的概念

例如:

public class A{

  public int i=1;

  public void test(){

   System.out.println(i);

 }

}



public class B extends A{

  public int i=2;

  public void test(){

   System.out.println(i);

 }



public static void main(String [] args){

 A a=new B();

  a.test();

}

}

这里输出的是2,不是1。因为这里实际上调用的是B的test方法。所以使用B类的属性。

二、对于整数类型,包括short 、Int、long 。如果使用对象Integer a=2; Integer b=2; 如果直接比较a==b,这里返回true。这只在数值范围在-128~127内成立。如果超出这个范围,他们就会各自创建自己的包装对象,a就不再等于b的引用了。

三、多维数组,比如2维数组,不一定第2维的长度都要相同。

四、如果重载一些方法,这些方法的参数类型不同,但是他们具有父子关系时,我们在调用的过程中。如果没有当前类型的方法,这个参数会进行向上转型,即转成适合父类的类型来进行调用。拿数值类型来说,首先是基本类型(从小字节到大字节例如,short->int->long),然后是相应的包装类,然后是Number类,然后是Object类。所以如果方法只是这些参数不同,调用的时候就会依次查找存在的方法,按照顺序,找到就调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值