当前位置:  技术问答>java相关

抽象类和接口的讨论

    来源: 互联网  发布时间:2015-08-05

    本文导语:  一个抽象类,其所有方法都是public abstract,所有字段都是public static final 那么这个类和接口有什么不同? | The most important difference between abstract class and interface is what they are trying to ...

一个抽象类,其所有方法都是public abstract,所有字段都是public static final
那么这个类和接口有什么不同?

|
The most important difference between abstract class and interface is what they are trying to describe.

The class is to show : what is it.
It's trying to describe the attributes of objects.

but the interface is to demonstrate : what can it do.
It's trying to describe the functions of objects.

I suggest you to look some books about UML,
they will give you more useful information about such difference.

In coding,
The interface can implements multi-inheritance.
The abstract class can have attributes.

|
一般情况下:抽象类是描述物质的。接口是描述动作的。

|
抽象类中能够实现自己的方法,可是在接口中只能定义方法,却不能实现方法!这就是他们主要的差别!

|

You’ll learn that the interface is more than just an abstract class taken to the extreme, since it allows you to perform a variation on C++’s “multiple inheritance,” by creating a class that can be upcast to more than one base type. 

Keep in mind that the core reason for interfaces is shown in the above example: to be able to upcast to more than one base type. However, a second reason for using interfaces is the same as using an abstract base class: to prevent the client programmer from making an object of this class and to establish that it is only an interface. This brings up a question: Should you use an interface or an abstract class? An interface gives you the benefits of an abstract class and the benefits of an interface, so if it’s possible to create your base class without any method definitions or member variables you should always prefer interfaces to abstract classes. In fact, if you know something is going to be a base class, your first choice should be to make it an interface, and only if you’re forced to have method definitions or member variables should you change to an abstract class, or if necessary a concrete class.

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.script接口invocable的类成员方法: getinterface定义及介绍
  • 关于LOCAL接口和REMOTE接口的同时兼顾的问题
  • java命名空间javax.lang.model.element接口typeelement的类成员方法: getinterfaces定义及介绍
  • 请问 linux 是如何调用 alsa的控制接口的??是通过控制接口名字吗?
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getmanagementspecversion定义及介绍
  • LINUX下最大支持虚接口数是多少? 如果我想配置1000个虚接口可以吗?
  • java命名空间java.beans.beancontext接口beancontextproxy的类成员方法: getbeancontextproxy定义及介绍
  • 对于操作系统的程序接口,作业接口,单内核,微内核到底有什么区别?
  • java命名空间javax.print接口uriexception的类成员方法: getreason定义及介绍
  • java的API中有没有既实现了Map接口又实现了List接口的类?
  • java命名空间javax.swing.text接口caret的类成员方法: install定义及介绍
  • 菜鸟提问:一个类实现了一个接口,除了要定义接口的所有方法外,可不可以再添加其他方法?
  • java命名空间javax.swing接口rootpanecontainer的类成员方法: getrootpane定义及介绍
  • 急,请问如何修改网络接口eth为其它名称,如网络接口为abc0, abc1,要修改哪个配置文件?
  • java命名空间javax.swing.text接口highlighter的类成员方法: install定义及介绍
  • 有人在Linux下用过1394接口的设备吗?怎么装载一个1394接口的存储设备呢?
  • java命名空间java.lang.reflect接口parameterizedtype的类成员方法: getrawtype定义及介绍
  • 请问高手:EJB中的远程接口、本地接口、HOME接口的联系与区别是什么?应用时应注意哪些问题?
  • java命名空间javax.management接口descriptorread的类成员方法: getdescriptor定义及介绍
  • C#学习笔记之接口与基于接口的工厂模型
  • java命名空间javax.lang.model.element接口typeparameterelement的类成员方法: getgenericelement定义及介绍
  • 请问为什麽在J2ee中客户端(测试时)用jndi定位enterprise bean的时候,可以把远程接口实例化?接口不是不可以生成对象的吗?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3