java4

参数传递

基本数据类型是复制值,引用数据类型是复制引用。

因此传递引用作为参数后可以通过引用的方法改变其字段,但改变形参(引用)本身,不会改变实参(引用)本身。

......

int [] b = new int[2];

modify(b);//b still --->int[2]

}

void modify(int[] b){

  b[0]++;//change the first element of int[2]

  b=new int[5];// do not change the b outside

}

 

多态

一个程序中相同名字表示不同含义

编译时多态:重载 (同名方法)

运行时多态:覆盖,动态绑定(dynamic binding,也叫虚方法调用virtual method invoking)

upcasting

派生类型当基本类型处理,Person p = new Stu();

void fun(Person p){...}            fun(new Person());  fun(new Stu());

虚方法调用,根据方法的实际传入的实例的类型来决定选用哪个方法

所有非final方法都自动动态绑定

if (a instanceof className)  //判断a是不是classname类型(或它的子类类型)

 

普通方法是虚方法   invokevirtual

static方法不是虚方法,属于类,与实例类型无关   invokestatic

private方法不是虚方法,子类看不见它,无法overwrite它   invokespecial

final方法子类无法覆盖,不存在虚化

posted @ 2015-09-11 17:03  jack-xu  阅读(134)  评论(0)    收藏  举报