Java的抽象类
一、抽象方法
1.方法的定义由两部分组成:方法声明和方法体。
[修饰符]返回数据类型 方法名([参数列表]){
方法体
[return语句]
}
2.抽象方法特指实例方法中具有方法声明部分,而没有方法体的特殊方法。抽象方法前必须用修饰
符abstract修饰,否则会出现编译错误。方法体是指方法声明后的“{ }”中的代码块,即使“{}”中没
有一行代码,也算有方法体。
类方法是在类加载时就要确定的方法,不可以成为抽象方法,即 abstract 和 static 不能同时使用。
抽象方法的定义规则如下:
[修饰符]abstract 返回数据类型 方法名([参数列表]);
例如:
public abstract void p () ;
public abstract double as (int a, int b) ;
说明:方法最后的分号“;”不可以省略。
二、抽象类
1.abstract修饰的类称为抽象类。抽象类是一种特殊的类。包含抽象方法的类一定是抽象类,需要
在类前使用abstract修饰符,但抽象类可以没有抽象方法。
抽象类:不能创建对象,可以声明引用
2. ①含有抽象方法的类必须声明为抽象类
②抽象类中可以没有抽象方法
③抽象类中的抽象方法可能继承自父类(包含父类以上的所有祖先类)
④抽象类不能实例化
⑤当子类对继承的抽象方法进行方法重写后,子类可以实例化
三、总结
1.abstract修饰的方法称为抽象方法。
抽象方法只有方法声明,没有方法实现。
注意:抽象方法只能在抽象类中。
2.abstract修饰的类称为抽象类。
抽象类,不能创建对象,但是可以声明引用注意:
① 抽象方法只能在抽象类中;
② 子类继承抽象类,必须实现抽象类中的所有抽象方法,除非子类还是抽象类;
③ 抽象类中 即可以有抽象方法,也可以有非抽象方法
3.抽象类的好处:强制使用多态
四、代码
1.
package demo;public class Test1{public static void main(String[] args){Myclass mc=new Sub();mc.mb();}
}
//抽象类abstract class Myclass{int n;public void ma(){System.out.println();}//抽象方法:只有方法的声明,没有方法的实现public abstract void mb();}
//子类
class Sub extends Myclass{public void mb(){System.out.println("mb的方法的实现...");} }