JAVA面向对象:继承

java面向对象:继承

继承:

  1. 关键字 extends
  2. 子类可以调用父类中的属性和方法(public 或 protected修饰的,或没有加修饰符的) 当做自己的来使用。例:Cat 类继承了 Animal 类。Animal 中有私有的 foot 属性和私有的 test4 方法。Cat 类继承了 Animal类。从图片上看到了,子类不能直接访问父类的私有成员。
    JAVA面向对象:继承
    JAVA面向对象:继承
  3. 子类可以添加独有的属性和方法JAVA面向对象:继承

JAVA面向对象:继承

  1. 子类从父类中继承过来的某个方法不能满足子类需要的时候,可以在子类中重写(或者叫覆盖)父类的该方法JAVA面向对象:继承
    JAVA面向对象:继承
  2. 每一个类都有继承类,默认继承Object类(Object类是所有类的父类)
  3. java中只支持单继承,不支持多继承(C++支持多继承)。单继承保证了安全。(什么叫保证了安全,比如:如果支持多继承,那 C 类继承 A ,B这两个类,并且 A ,B中都有 test 方法,如果 C 类调用了 test 方法,那么调用的是谁的?)
  4. java中虽然只支持单继承,但可以间接实现多继承。比如 Student 类继承 Person 类, Person 类又继承了 Animal 类, 那 Student 类就间接的继承了 Animal 类。JAVA面向对象:继承JAVA面向对象:继承JAVA面向对象:继承
    10.继承在内存中的存储形式(一层一层) JAVA面向对象:继承

拓展:Object类中的几个方法:

  1. hashCode() 将对象在内存中的地址经过计算得到一个 int 整数
  2. equals() 用来比较两个对象的内容 Object 默认效果是 == 等号比较基本类型(比较值) 可以比较引用类型(比较地址) 在Object中,equals() 方法默认效果比较的是地址,一般会重写 equals 方法。
  3. toString() 打印输出时将对象变成String字符串。一般也会重写 toString 方法
  4. getClass 获取对象对应类的类映射(反射)
  5. finalize() 该方法的权限修饰符是 protected 在对象被 Garbage Collection(垃圾回收器) 回收的时候默认调用执行的方法(类似C++的析构函数)
  6. clone() 该方法的权限修饰符是 protected 为了克隆对象

关于线程管理的:
7. wait() 线程进入挂起等待状态
8. notify() 线程唤醒
9. notifyAll() 唤醒所有