Java继承浅析思考

来源:互联网 发布:arduino图形化编程 编辑:程序博客网 时间:2024/06/08 06:21

java三大特性:

  1. 继承
  2. 封装
  3. 多态

    类是对对象的抽象,继承是对某一批类的抽象,从而实现对现实世界更好的建模。

    有利于提高代码的复用,关键词是extends,只支持单继承。
    简单说:我继承了你,你的就是我的,我的还是我的

    如果定义了一个类,没有调用extends,则它的父类是java.lang.Object

  4. 在子类中可以根据需要对基类中继承来的方法进行重写。

  5. 重写必须和被重写方法具有相同方法名称、参数列表和返回类型。
  6. 重写方法不能使用比被重写方法更严格的访问权限。

    重写:toString方法

    • 默认返回:包名+类名+@+哈希码(根据对象内存位置生成,唯一不重复)
    • 可以重写
        public String toString(){            return getClass().getName()+"@"+Integer.toHexString(hashCode());            //原Object类的toString方法        public String toString(){            return "你好!";            }                   //重写后的toString方法 

super是直接父类对象的引用,可以通过super来访问父类中被子类覆盖的方法或属性。

注意点:

  1. super在构造方法中永远处于第一行;
  2. 如果实现了对父类构造方法的重写,那么,在对子类对象的生成时,构造方法的调用顺序应是先父类再子类;

顺便提一下继承与组合的关系:

  • “is-a”关系使用继承
  • “has-a”关系使用组合