一、抽象类和抽象方法
三、抽象类和接口的区别
Java中使用abstract关键字来描述抽象类和抽象方法。
抽象方法的定义方式为“访问修饰符 abstract 返回值类型 方法名(参数列表);”
public abstract String NoOfWheels();
如果含有一个抽象方法,则这个类称为抽象类,抽象类必须在类定义的时候使用abstract关键字。抽象类的定义方法为“访问控制修饰符 abstract class 类名{}”
public abstract class Vehicle {
}
因为抽象方法只定义,并不给出方法实现,所以不能用抽象类创建对象。
含有抽象方法的类一定是抽象类,但是抽象类不一定都有抽象方法,且抽象类中可以定义普通的成员方法。
抽象方法必须定义为public或者protected的权限,因为如果定义为private,私有的成员不能被子类继承,子类便无法实现该方法,缺省的情况下默认为public。
如果一个类继承了抽象类,则子类必须实现抽象类中的抽象方法。
二、接口
接口(Interface),是供别人调用的方法或者函数。定义一个接口的用“public interface 接口名{}”
public interface Vehicle {
}
接口中的所有方法都是抽象的,他是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,没有变量和方法的实现。
接口中的变量会默认的设置为“public static final”,一般不在接口中定义变量
接口中的方法只能是“public abstrac”的。因此,接口中的所有方法都不能有具体的实现
类实现接口使用关键字implements,一个类可以实现多个接口
public class Bus implements Vehicle{
}
普通的类若实现了一个接口,则必须实现接口中的所有抽象方法
public interface Vehicle {
void start();
void stop();
}
public class Bus implements Vehicle{
public void start(){
System.out.println("Bus start");
}
public void stop(){
System.out.println("Bus stop");
}
}
类若继承了类且实现了接口,则extends关键字必须在implements之前
public class Men extends Door implements Features {
}
三、抽象类和接口的区别
1. 抽象类中可以允许方法的实现,接口中只能存在抽象方法,不能有方法的实现;
2. 抽象类中的变量可以是各种类型的变量,而接口中的变量只能是public static final类型的;
3. 一个类只能继承一个抽象类,而一个类可以实现多个接口。