面向对象(三)
面向对象-多态
仅仅适用于方法,不适用与属性
静态多态
(一)重载
特性:方法名一样,形参不同(类型,个数,不同类型的顺序)
注意:
-
重载只发生在一个类中
-
重载与返回值类型无关
(二)重写/override
(重写的方法在eclipse的右边会有绿色的三角)
要求:
-
方法名一样
-
参数的个数,类型,顺序要一样(参数不一样是 重载/overload)
-
返回值类型一样
-
重写方法的访问符访问度要大于原有
-
!!!!!父类中的private修饰的方法没有重写
-
构造方法不可被重写
动态多态
运行时加载
前提
-
继承 2. 重写 3. 父类引用指向子类对象(自动调用子类重写的方法)
面向对象(四)
Java中的内存
-
栈/stack 2. 堆/heap 3. 静态区/静态块 4. 代码区/代码块
对象的引用
引用数据类型的内存
-
对象之间也可以赋值
-
基本数据类型值传递,引用数据类型引用传递
-
gc / garbage collection(垃圾回收),没有被指向,java自动回收
其他
-
对象初始化之后,成员变量会有初始值/局部变(在方法体,或者if、while语句块中的类容)量不会赋初始值。
-
对象指的是new后边的类容,new前边的名字只是引用。
-
只要使用new关键字就是新的对象,不要随便new对象作为实参,!!!!注意方法中方法的调用对象
public void fr(){ m.hurt(this); }
例如在上诉代码中可以通过this指代,你要调用的互为依赖关系的对象
-
-
java.lang.NullPainterException./对象为空,因为空的对象调用属性方法
-
System.arraycopy(Src,srcpos,dest,destpos,length)
Src 原数组 srcpos 要拷贝的数组下标位置
dest目标数组,拷贝到的地 destpos 目标数组的起开始位子
length 拷贝的长度
-
ArrayList list = new Arraylist();
定义集合
-
instanceof/运算符,某个对象是不是某个类型
-
函数名(int ... arrray)/实参可以是 无、int[]、1,2,3 、 null.
-
先加载父类的静态块在加载子类的静态块,然后是属性、实例化块,最后加载方法
-
局部变量必须赋初始值才能使用
-
属性默认有初始值
-
静态块会有类名标识,没有重写