------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
抽象类与接口
抽象类
抽象类:如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。因此可知,抽象类只能被继承,不能进行实例化对象。
关键字:abstract
格式:
public abstract class A{
属性、方法等……
}
抽象方法
抽象类中有一种特殊的方法叫做抽象方法,抽象方法没有具体的实现,它存在的意义就是被重写。因此,该方法不能撰写{}区块,直接用“;”进行结束即可。如:
public abstract class Person{
public abstract void doWork();
}
抽象类中除了有抽象方法外,还有具体数据和具体方法。
继承抽象方法:
public class Student extends Person{
public void doWork(){
System.out.println(“study!”);
}
}
接口
接口:被称为特殊的抽象类,由全局常量和公共的抽象方法构成。
关键字:interface
格式:
public interface Swimmer{
public abstract void swim();
}
接口中的方法都是抽象方法。接口中定义的属性也都是常量,不允许有变量。一个类可以同时实现多个接口,中间用逗号隔开。
实现接口:
public class People implements Swimmer{
public void swim(){
System.out.println(“swim!”);
}
}
一个类也可以既继承类又实现接口。
public class Student extends People implements Swimmer{
public void doWork(){
System.out.println(“study!”);
}
public void swim(){
System.out.println(“swim!”);
}
}
抽象类和接口进行比较
1. 抽象类的修饰关键字为:abstract class
接口的修饰关键字为:interface
2. 继承抽象类使用的关键字:extends
实现接口使用的关键字:implements
3. 抽象类中可以定义常量,也可以定义变量。
接口中只能定义常量,不能定义变量。
4. 抽象类中可以有具体方法,也可以有抽象方法。
接口中只能有抽象方法,不能有具体方法。
5. 一个类只能继承一个抽象类。
一个类可以实现多个接口,中间用逗号隔开。
6. 继承抽象类要实现抽象类中的所有抽象方法,具体方法可以不重写。
实现接口必须实现所有接口中的所有抽象方法。
7. 抽象类中的基本数据类型不一定是静态的。
接口中的基本数据类型一定是静态的。