Java实训第9天(面向对象)

01 多态

  • 概述
    • 事物存在的多种形态
  • 前提
    • 要有继承关系
    • 要有方法的重写
    • 要有父类引用指向子类对象
  • 向上转型和向下转型
    • Fu  f  =  new  Zi ( ) ;   // 向上转型
    • Zi  z  =  (Zi) f ;   // 向下转型
  • 多态的好处和弊端
    • 好处
      • 提高代码的维护性
      • 提高代码的扩展性
    • 弊端
      • 不能使用子类的特有属性和行为

02 抽象

  • 特点
    • 抽象类和方法必须使用abstract关键字来修饰
      • abstract  class  类名 { }
      • public  abstract  void  eat ( ) ;
    • 抽象类不一定有抽象方法,有抽象方法的类一定是接口或抽象类
    • 抽象类不能实例化,按照多态的方式,由具体子类实例化
    • 抽象类的子类要么是抽象类,要么重写抽象类中的所有抽象方法
  • 抽象类成员的特点
    • 成员变量:既可以是常量也可以是变量,不能用abstract修饰成员变量
    • 构造方法:有,用子类访问父类的初始化
    • 成员方法:
      • 抽象方法:强制要求子类实现
      • 非抽象方法:子类继承,提高代码的复用性

03 接口

  • 接口的特点
    • 接口用关键词interface表示
    • 类实现接口用implements表示
    • 接口不能创造实例
      • 按照多态的方式进行实例化
    • 接口的子类
      • 可以式抽象类,但意义不大
      • 可以是具体的类,但要重写接口的所有抽象方法
  • 接口成员的特点
    • 成员变量
      • 只能是常量,并且是静态发公开的
      • 默认修饰符是public  static  final
  • 抽象类与接口的区别
    • 成员区别
      • 抽象类
        • 成员变量:可以是常量也可以是变量
        • 构造方法:有
        • 成员方法:可以是抽象的,也可以不抽象
      • 接口
        • 成员变量:只有常量
        • 构造方法:无
        • 成员方法:只能是抽象方法
    • 设计理念
      • 抽象类被继承,体现的是“is a”的关系,定义的是该继承体系共有的功能
      • 接口被实现,体现的是“like a”的关系,定义的是该继承体系的扩展功能

你可能感兴趣的:(Java)