285 次浏览
  1. 继承
    • 格式
      /* Your code... */
      //父类里放共性
      class SubClass extends SuperClass{
      //子类放特性,是对父类的拓展
      }

    • 作用
      • 描述一个体系
      • 解决代码重复
    • 注:
      • java只允许单继承
      • java.lang.Object类时java语言提供,任何类都是Objec的(间接)子类
    • 子类可以访问的父类成员
      • 可以访问的 
        • public或protected修饰的
        • 同包中缺省访问修饰的
      • 不可以直接访问的
        • 不同包里缺省访问修饰符的
        • private修饰的
    • 子类初始化//从类所在继承树最顶层的类的构造器开始执行
      • 调用子类构造器前调用父类可以被子类访问的构造器
      • 完成父类字段初始化操作,(隐式调用父类无参构造函数)
      • 若父类没有子类可以访问的无参构造器,子类必须显示通过super语句调用父类带参数构造器
    • super关键字
      • 定义:代表当前对象的父类对象
      • 作用
        • 子类构造方法中的第一条语句:
          /* Your code... */super(name,age) //在子类的构造方法中调用父类的指定构造器

        • 在子类中访问父类的被隐藏的实例变量
        • 调用父类的被覆盖的实例方法,如:super.name,super.fly();
    • 方法覆盖Override:方法重写
      • 原则:
        • 一同:签名必相同
        • 两小:
          • 子类方法放回值类型和父类同型或是其子类
          • 子类方法声明抛出异常的类和父类方法声明抛出异常的类也是,(运行时异常除外)
        • 一大:子类方法访问权限比父类方法权限>=
      • @Override标签
  2. 组合
    • 在B中new 一个A的对象,调A的方法
  3. 多态
    • Java引用变量的两类型
      • 编译时类型:声明该变量时使用的类型决定
      • 运行时类型:由实际赋给该变量的对象决定
    • 编译时类型和运行时类型的不一致,可能出现多态
    • 出现前提
      • 继承(类和类)//子类对象赋值给父类变量
      • 实现(接口和实现类)//实现类对象赋值给接口变量
    • 运行时会表现出 子类or实现类 特征(调用子类or实现类 的覆盖方法)
    • 作用:屏蔽不同子类或者实现类间差异,通用编程
    • instanceof
      • 如果对象是一个类/子类/实现类的实例,返回true
      • 操作的两个操作数应当具有继承或者相同的关系,否则编译报错

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注