Java基础之抽象篇

来源:互联网 发布:alexa软件 编辑:程序博客网 时间:2024/06/10 01:46
抽象 
一 概念
看不清
被abstract修饰的类 叫抽象类
被abstract修饰的方法 叫抽象方法


抽象类的特点:
1.抽象方法一定在抽象类中
2.抽象方法和抽象类都必须用 abstract关键字修饰
3.抽象类不可以用new创建对象 抽象类无法实例化 因为调用抽象方法没意义
4.抽象类中的方法想要被使用 必须由子类重写其所有抽象方法 建立子类对象调用
如果只覆盖部分 会继承父类的抽象方法 那么子类也是个抽象类


5.一个抽象类中可以包含抽象方法和非抽象方法 但一个方法被抽象修饰,它所在的类必须是抽象的
抽象类可以不定义抽象方法
抽象的好处?
抽象父类 让 子类 必须完成父类的全部抽象方法
功能不确定 子类去做


抽象类和普通类一样 
普通类描述行为 属性 抽象类也一样 该怎么描述还怎么描述
抽象类中 有构造函数 但是 由于"抽象"对类的限定 使得这个抽象修饰的类无法创建对象


abstract只是一个修饰符 如果定义的抽象类中没有抽象方法 那么这么定义只是为了不让该类创建对象


二 语法格式
抽象类
访问权限修饰符 abstract class 类名{
//普通属性
//普通方法
//抽象方法
}
抽象方法
访问权限修饰符 abstract 返回值类型 方法名(形参列表);

若一个普通子类继承一个抽象子类 该抽象子类又继承一个抽象的父类


那么 该普通子类必须得重写抽象父类中所有的抽象方法
但是 抽象子类已重写过的抽象方法 普通子类就不需要重写了


模板方法设计模式
当代码完成优化后,就可以解决这类问题


什么是模板方法呢?
在定义功能时,功能的一部分是确定的,但是有一部分是不确定的.而确定的部分在使用不确定的部分
那么这时就将不确定的部分暴露出去,由该类的子类去完成


不要记代码 记思想