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

来源:互联网 发布:北京网络咨询公司上海 编辑:程序博客网 时间:2024/05/16 09:19

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

   例如:

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类。所以如果方法只是这些参数不同,调用的时候就会依次查找存在的方法,按照顺序,找到就调用。

原创粉丝点击