1.抽象定义: 抽象就是从多个事物中将共性的,本质的内容抽取出来。 (例:狼和狗共性都是犬科,犬科就是抽象出来的概念。) 2.抽象类定义: 包含抽象方法的类就是抽象类。 抽象类不一定包含抽象方法。 类/抽象类不一定包含方法。 抽象类可以有非抽象方法。 3.抽象方法定义: 多个对象都具备相同的功能,但是功能具体内容有所不同,那么在抽取过程中,只抽取了功能定义,并未抽取功能主体,那么只有功能声明,没有功能主体的方法称为抽象方法。 例如:狼和狗都有吼叫的方法,可是吼叫内容是不一样的。所以抽象出来的犬科虽然有吼叫功能,但是并不明确怎样吼叫。 4.格式:抽象类与抽象方法均需要使用abstract关键字。 抽象方法格式: 修饰符 abstract 返回值类型 函数名(参数列表) ; 抽象类格式: 修饰符 abstract class 类名{} 5.特点: (1)a.抽象类本身无法实例化。 b.抽象类通过多态的形式创建其子类实例对象。 c.子类需要将抽象父类的抽象方法均覆盖才可以实例化,否则依然是抽象类。(子类继承抽象类要么是抽象类,要么重写所有的父类抽象方法) d.抽象类强制子类必须实现抽象方法。 (2).成员特点: 成员变量:可以是变量也可以是常量 构造方法:有构造方法,但是不能实例化 (构造方法的作用是用于子类访问父类数据的初始化) 成员方法: 可以有抽象方法 限定子类必须完成某些动作 也可以有非抽象方法 提高代码服用性 6. abstract不能与如下关键字共存 final :抽象类需要继承,final修饰的无法继承 static :抽象类抽象方法无方法体,调用无意义 private:抽象类的方法需要被覆盖,如果private修饰的话,子类无法访问
|