面向对象(三)-多态,面向对象(四)

面向对象(三)

面向对象-多态

仅仅适用于方法,不适用与属性

静态多态

(一)重载

特性:方法名一样,形参不同(类型,个数,不同类型的顺序)

注意:

  1. 重载只发生在一个类中

  2. 重载与返回值类型无关

(二)重写/override

(重写的方法在eclipse的右边会有绿色的三角)

要求:

  1. 方法名一样

  2. 参数的个数,类型,顺序要一样(参数不一样是 重载/overload)

  3. 返回值类型一样

  4. 重写方法的访问符访问度要大于原有

  5. !!!!!父类中的private修饰的方法没有重写

  6. 构造方法不可被重写

动态多态

运行时加载

前提

  1. 继承 2. 重写 3. 父类引用指向子类对象(自动调用子类重写的方法)

面向对象(四)

Java中的内存

粗分类
  1. 栈/stack 2. 堆/heap 3. 静态区/静态块 4. 代码区/代码块

对象的引用

栈堆

引用数据类型的内存

  1. 对象之间也可以赋值

  2. 基本数据类型值传递,引用数据类型引用传递

  3. gc / garbage collection(垃圾回收),没有被指向,java自动回收

其他

  1. 对象初始化之后,成员变量会有初始值/局部变(在方法体,或者if、while语句块中的类容)量不会赋初始值。

  2. 对象指的是new后边的类容,new前边的名字只是引用。

    1. 只要使用new关键字就是新的对象,不要随便new对象作为实参,!!!!注意方法中方法的调用对象

      public void fr(){
        m.hurt(this);
      }

      例如在上诉代码中可以通过this指代,你要调用的互为依赖关系的对象

  3. java.lang.NullPainterException./对象为空,因为空的对象调用属性方法

  4. System.arraycopy(Src,srcpos,dest,destpos,length)

    Src 原数组 srcpos 要拷贝的数组下标位置

    dest目标数组,拷贝到的地 destpos 目标数组的起开始位子

    length 拷贝的长度

  5. ArrayList list = new Arraylist();

    定义集合

  6. instanceof/运算符,某个对象是不是某个类型

  7. 函数名(int ... arrray)/实参可以是 无、int[]、1,2,3 、 null.

  8. 先加载父类的静态块在加载子类的静态块,然后是属性、实例化块,最后加载方法

  9. 局部变量必须赋初始值才能使用

  10. 属性默认有初始值

  11. 静态块会有类名标识,没有重写

原文地址:https://www.cnblogs.com/-Archenemy-/p/11967604.html