接口、类、抽象类、对象的另类解释-阿里云开发者社区

开发者社区> geekori> 正文

接口、类、抽象类、对象的另类解释

简介: 本文为原创,如需转载,请注明作者和出处,谢谢!     大家也许都知道做工艺器或是工厂里做生产某些产品的模具模具。如做一个金属的五角星,只要将钢水罐到五角星的模具模具里就可以很容易地制做五角星。
+关注继续查看
本文为原创,如需转载,请注明作者和出处,谢谢!

    大家也许都知道做工艺器或是工厂里做生产某些产品的模具模具。如做一个金属的五角星,只要将钢水罐到五角星的模具模具里就可以很容易地制做五角星。

    我们也可以将类比喻成做五角星的模具。  而生产出的一个个五角星就是一个个对象。 为了建立不同的对象(有的是金属的、有的塑料的,等等),可通过向模具里灌入不同的液态材料就可以制做。这也相当于向类的构造方法中传入不同的参数(相当于不同的液态材料)。

    还有就是接口,如果说类是对象的抽象,那么接口就是类的抽象。
我们也可以将接口看成是制做这个五角星模具的规格列表(相当于接口中的抽象方法)。也就是说,只有这个模具(类)符合(实现)相应的规格(接口),才会成为制做五角星的模具模具。

哈哈,当然,这个使用模具生成五角星及其他产品的工厂可以看成是对象工厂。

class ObjectFactory
{
    
public static 五解星 create五角星() {}
   
    
public static 圆 create圆() {}

      
public static 椭圆 create椭圆() {}
    
}


    也就是说,类和接口都不是实际的产品,都不能拿来用,类相当于模具(没人会拿模具模具在商店里卖吧,估计只有对象工厂会买),而接口只相当于制做模具的规 格列表,如尺寸、角度等。而这些规格列表的内容需要在具体类中实现才可能成为具体的模具,如长度和宽度,如果在类中实现为长度等于宽度,那么这个类就成为 一个成方形的模具,如果长度不等于宽度,就是一个长方形的模具。然后再实例化这个模具(类),就生成出一个个正方形或长方形对象。

    在面向对象理论中还有一个抽象类,这个抽象类其实就相当于一个半成品的模具。如只实现在长度和宽度(相当于在抽象类中已实现的方法),并没有实现深度(这 个深度相当于抽象类中的抽象方法,这个抽象方法需要在抽象类的子类中实现)。所以这个模具就是半成品了。因此,是无法直接拿半成品的模具(抽象类)去生产 (实例化)产品(对象)的。



国内最棒的Google Android技术社区(eoeandroid),欢迎访问!

《银河系列原创教程》发布

《Java Web开发速学宝典》出版,欢迎定购

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
使用Java代码向SAP ABAP Netweaver发送HTTP post请求
使用Java代码向SAP ABAP Netweaver发送HTTP post请求
3 0
Java java.util.concurrent.Future的一个例子
Java java.util.concurrent.Future的一个例子
3 0
UBUNTU安装Android Studio 3
UBUNTU安装Android Studio 3
3 0
一个使用Java BlockingQueue实现的生产者和消费者
一个使用Java BlockingQueue实现的生产者和消费者
3 0
Java 写时拷贝容器CopyOnWriteArrayList的测试
Java 写时拷贝容器CopyOnWriteArrayList的测试
3 0
使用Java代码获得本地文件的各种属性
使用Java代码获得本地文件的各种属性
2 0
Java HashMap进行遍历的几种方式
Java HashMap进行遍历的几种方式
1 0
使用javax.tools.JavaCompiler根据字符串内容动态生成新的Java类并编译成.class
使用javax.tools.JavaCompiler根据字符串内容动态生成新的Java类并编译成.class
3 0
一个使用Java Map.computeIfAbsents实现非波拉契(fibonacci)数列的列子
一个使用Java Map.computeIfAbsents实现非波拉契(fibonacci)数列的列子
2 0
自己实现的Java装箱类,可以包裹任意类型
自己实现的Java装箱类,可以包裹任意类型
0 0
+关注
geekori
欧瑞科技创始人&CEO,东北大学计算机专业硕士,拥有超过20年软件开分经验。欧瑞学院金牌讲师、51CTO学院金牌讲师、CSDN学院特约讲师、畅销书作者,企业内训讲师。曾出版过超过30本IT畅销书,涉猎移动开发、跨平台开发、机器学习、区块链、大数据、编译器等领域。
419
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载