当前位置: 代码迷 >> 综合 >> Java学习 ---- Day15
  详细解决方案

Java学习 ---- Day15

热度:43   发布时间:2024-01-26 19:28:14.0

Day15
/**

  • 抽象类: 我们之前的 猫Cat 狗Dog 动物Animal 案例 ,Cat 类 Dog 类 创建实例 都可以有具体的对象与之对应

  •      但是 Animal类的 实例   却没有具体的对象与之对应, 也就是说 Animal 作为父类 , 创建的对象  没什么意义。而且
    
  •      当 子类 重写了 父类的方法时 ,父类的这个方法 也没什么意义了, 所以  java 提供了  专门用来 做继承  设计父类的
    
  •     一个概念   抽象类
    
  • 没有使用抽象类作为父类时的一些缺陷 :

  •  父类是具体的类 : 父类自身创建的实例 没有具体对象 与之对应   意义不大
    
  •  		         父类的某些方法 被子类重写,父类中的这些方法 也没有什么意义
    
  •  		         父类无法限制子类  子类可以随意设计 
    
  • 为什么需要抽象类? 如何定义抽象类?
    是一种模版模式。抽象类为所有子类提供了一个通用模版,子类可以在这个模版基础上进行扩展。
    通过抽象类,可以避免子类设计的随意性。通过抽象类,我们就可以做到严格限制子类的设计,使子类之间更加通用。

    抽象类 是用来 专门做父类 被继承使用的

    抽象类的定义语法:
    修饰符 abstract class 类名 {

    }
    

    抽象类的内部语法:
    1. 普通类中有的元素 抽象类也可以有 比如 成员变量 构造方法 普通方法
    2.抽象类中 可以定义抽象方法 使用 abstract 关键字 抽象方法没有方法体 ,抽象类中定义的
    抽象方法 只是 描述 有这个功能,但是 抽象类不提供具体的实现,具体实现由子类提供。
    修饰符 abstract 返回值类型 方法名(方法参数); 注意:没有方法体

    3.抽象类不能创建自身的实例	
    4.抽象类有构造方法 但是不能创建自身实力  构造方法的意义 是 创建子类实例的时候 初始化父类的数据 给子类实例使用
    5.含有抽象方法的类 只能定义成抽象类  也就说 一个类 如果有抽象方法 那这个类一定是抽象类, 但是 一个
    抽象类 不一定有抽象方法6. 抽象类对子类的限制    如果 一个子类 没有实现抽象父类的所有的抽象方法  那么这个子类也要被定义成抽象类换句话说:  一个子类 继承了抽象类    要么 要实现这个抽象类中的所有抽象方法  ,要么 这个子类也要被定义成抽象类
    

总结:
抽象类的成员变量 跟 具体类没啥区别 一样使用
抽象类的成员方法:
可以是具体方法: 子类可以直接调用 提高代码的复用性
可以是抽象方法: 强制子类去实现

关于 abstract 关键字 修饰类         抽象类   需要被继承修饰方法    抽象方法   必须被实现final 和 abstract 互斥private 和 abstract 互斥static 和 abstract 互斥
  • */
  相关解决方案