抽象方法
没有方法体的方法叫做抽象方法。如:
public double Mutiply(double x,double y);
public String toString();
这样的声明方式,只有权限、返回值类型、方法名和参数,没有方法体的方法,叫抽象方法。
抽象方法必须用abstract声明,则:
public abstract double Mutiply(double x,double y);
public abstract String toString();
只有方法名、参数后面跟有“{}”,包括空的方法体,都不能叫做抽象方法,也不能加“abstract”关键词声明为抽象方法。
抽象类
含有抽象方法的类,叫做抽象类;抽象类必须用abstract声明。
ps:可以有非抽象方法。
1.抽象方法一定要在抽象类中
2.抽象类不能直接实例化对象(创建对象)
3.抽象类的子类进行实例化,必须实现抽象父类所有的抽象方法。
接口与实现类
方法全都有抽象方法,不当当只有抽象类来使用,还可用接口(有利于功能拓展-)
接口的定义格式:
public interface 接口名{
变量列表
方法列表
}
ps:类与类为继承,类与接口为实现
1)在接口中,所有变量默认的权限为“public static final”;
2)接口中的方法,默认权限为“public abstract”。
接口的基本特征为
1.接口为一特殊的抽象方法
2.在接口中的变量可以直接用接口名进行调用
3.与抽象类一样,接口不能用于实例化
4.接口实现类只有在实现所有抽象方法后才可以用于对象的实例化
5.接口支持多继承,一个接口可以继承多个接口。(一个类可同时实现多接口)
实现接口构造方法为implements 格式:
class 实现类名 implements 接口名{
变量列表
方法实现列表
}
interface和abstract类比较
(1)abstract类通过继承extends、重写抽象方法实现抽象类的;而接口interface则通过实现implements、重写方法来实现接口。
(2)abstract类和接口中,都可以有抽象方法。
(3)abstract类和接口interface都可以通过extends进行继承;abstract类继承ab stract类只能单集成,而接口 interface 继承接口 interface 可以多继承。
(4)在接口中,只可以有常量,不能有成员变量;而在抽象类中,既可以有成员变量,也可以有常量。
(5)在抽象类中,可以有非抽象方法;在接口中,只能有抽象方法,可以不加关键字abstract,默认全部是抽象方法。