目录
1.基本定义
Java的抽象类:除了不能实例化对象之外,抽象类和普通类几乎一样。由于不能实例化对象,所以抽象类必须被继承,才能被使用。
在 Java 语言中使用 abstract class 来定义抽象类。如下实例:
public abstract class Employee
{
private String name;
private String address;
private int number;
public Employee(String name, String address, int number)
{
System.out.println("Constructing an Employee");
this.name = name;
this.address = address;
this.number = number;
}
public double computePay()
{
System.out.println("Inside Employee computePay");
return 0.0;
}
public void mailCheck()
{
System.out.println("Mailing a check to " + this.name
+ " " + this.address);
}
public String toString()
{
return name + " " + address + " " + number;
}
public String getName()
{
return name;
}
public String getAddress()
{
return address;
}
public void setAddress(String newAddress)
{
address = newAddress;
}
public int getNumber()
{
return number;
}
}
Java的接口:接口可以看成是特殊的抽象类,是Java语言中的一个抽象类型,即只包含抽象方法发抽象类。
public class MammalInt implements Animal{
public void eat(){
System.out.println("Mammal eats");
}
public void travel(){
System.out.println("Mammal travels");
}
public int noOfLegs(){
return 0;
}
public static void main(String args[]){
MammalInt m = new MammalInt();
m.eat();
m.travel();
}
}
2.相同点
接口和抽象类都是用来定义实体类的公共行为的,它们是对象更高层次的抽象
3.不同点
1.关键字不同
抽象类的子类运用extends这个关键字来进行继承的,接口是使用implements来实现接口。
2.构造函数的不同
抽象类是可以具有构造函数的,而接口是没有的
3.所含的方法不同
抽象类可以具有并运用main方法,而接口是没有mian方法的
4.实现的数量不同
抽象类可以实现多个接口,但只能继承一个抽象类
5.修饰符不同
接口中默认的使用方法是public,而抽象类的方法是任意访问修饰符号