咱们先看下抽象类的由来,抽象类是将具备相似特色的事物相同部分进行抽取而来的,他的目的是提供继承:
例如:
程序员:
属性:姓名、薪水
方法:工做程序员
经理:
属性:姓名、薪水、奖金
方法:工做ide
程序员和经理有共同的属性:姓名,薪水,有共同的方法工做,将他们这些共性的部分抽取出来就能够造成抽象类 员工。在这个例子中员工自己是没有意义的他的意义就在于能够做为程序员和经理的父类,提供继承。而员工这个类咱们能够把它定义为抽象类。
abstract class Employee{
public String name;
public double pay;
public abstract void work();
}
程序员继承员工类:
class Programmer extends Employee{
public void work(){
System.out.println("codeing....");
}
}
经理也继承员工类:
class Manage extends Employee{
public int bouns;
public void work(){
System.out.println("manage");
}
}
关于抽象类有一些须要注意的地方:code
接口是一种特殊的抽象类,在接口中全部的方法都是抽象方法。它比抽象类提供了更高的抽象。接口通常是用来定义一组规范,好比咱们常说的usb接口就是一种电脑外设的规范,无论是鼠标仍是键盘仍是u盘,只要符合这个规范的外设均可以插入这个接口。
使用usb接口能够下降鼠标键盘这些外设和笔记本电脑的耦合性。
interface USB
{
public void open();
}继承
Class Mouse implements USB{
Public void open(){
System.out.println(“鼠标开始工做!”);
}
}接口
Class KeyBoard implements USB{
Public void open(){
System.out.println(“键盘开始工做”);
}
}
接口和抽象类之间的区别在于他们的目的不一样,抽象类是为了提供继承,而接口是为了提供一种规范,目的是为了下降耦合,接口比抽象类抽象程度更高。it