接口和抽象类的区别-创新互联
我们先看下抽象类的由来,抽象类是将具有类似特点的事物相同部分进行抽取而来的,他的目的是提供继承:
例如:
程序员:
属性:姓名、薪水
方法:工作
经理:
属性:姓名、薪水、奖金
方法:工作
程序员和经理有共同的属性:姓名,薪水,有共同的方法工作,将他们这些共性的部分抽取出来就可以形成抽象类 员工。在这个例子中员工本身是没有意义的他的意义就在于可以作为程序员和经理的父类,提供继承。而员工这个类我们可以把它定义为抽象类。
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");
}
}
关于抽象类有一些需要注意的地方:
- 有抽象方法的类必须是抽象类。
- 抽象类中可以有非抽象方法
- 继承了抽象类的类必须实现该抽象类的所有抽象方法,否则它也是一个抽象类。
接口是一种特殊的抽象类,在接口中所有的方法都是抽象方法。它比抽象类提供了更高的抽象。接口一般是用来定义一组规范,比如我们常说的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(“键盘开始工作”);
}
}
接口和抽象类之间的区别在于他们的目的不同,抽象类是为了提供继承,而接口是为了提供一种规范,目的是为了降低耦合,接口比抽象类抽象程度更高。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
文章名称:接口和抽象类的区别-创新互联
当前网址:http://cdiso.cn/article/dshphp.html