`
seara
  • 浏览: 654712 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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

阅读更多
本文为原创,如需转载,请注明作者和出处,谢谢!

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

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

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

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

<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->classObjectFactory
{
publicstatic五解星create五角星(){}

publicstatic圆create圆(){}

publicstatic椭圆create椭圆(){}

}


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

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



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

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

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

分享到:
评论

相关推荐

    面向对象编程例子1

    在这个“面向对象编程例子1”中,我们可以推测作者可能创建了一些类,比如一个基类(可能是抽象类或接口),然后定义了几个继承自该基类的子类。每个子类可能具有自己的特性和行为,展示了多态性的概念。同时,通过...

    设计模式的另类讲法

    工厂方法模式进一步扩展了工厂模式的概念,它让子类决定实例化哪一个类,核心工厂类只提供创建产品对象的接口,而具体的创建工作由子类完成。在文中,作者以请MM去麦当劳吃汉堡为例,通过工厂方法模式,具体选择哪种...

    Object-Oriented System Development

    8. **抽象类**:抽象类是不能实例化的类,它用于为其他类提供公共接口。它可以包含抽象方法,这些方法在抽象类中没有具体实现,需要子类来完成。 9. **继承层次结构**:在面向对象编程中,类可以通过继承形成层次...

    java ssh通用DAO另类实现示例

    DAO是一种设计模式,它为应用程序提供了一种抽象的接口,以便与数据库进行交互,同时避免了硬编码SQL语句和紧密耦合数据库细节的问题。在SSH框架中,Hibernate作为ORM(Object-Relational Mapping)工具,可以直接...

    [数据抽象和问题求解-C++语言描述]源代码

    数据抽象是指在编程时对现实世界对象的简化表示,它将复杂的数据结构和操作隐藏在简单的接口背后。在C++中,数据抽象主要通过类(class)来实现。类定义了对象的状态(数据成员)和行为(成员函数),使得用户可以...

    设计模式可复用面向对象软件的基础

    1. 创建型模式(Creational Patterns):如单例模式、工厂方法模式、抽象工厂模式、建造者模式和原型模式,关注对象的创建过程,减少系统对具体创建对象的依赖。 2. 结构型模式(Structural Patterns):如适配器...

    《Java2核心技术卷I》配套源码

    你可以看到如何通过构造函数初始化对象,以及如何使用抽象类和接口实现多态性。 3. **异常处理**:在Java中,错误通常通过异常来处理。源码会展示如何使用try-catch-finally语句块捕获和处理异常,以及如何定义...

    C#设计模式.rar

    3. **抽象工厂模式**:抽象工厂模式提供了一组用于创建相关或依赖对象的接口,而无需指定它们的具体类。这在处理跨平台或跨框架的对象创建时非常有用,因为抽象工厂可以确保所有创建的对象都属于同一“家族”。在C#...

    传一个C++教程从入门到精通持续更新中(13)

    - **纯虚函数与抽象类**:在涉及函数重载时,纯虚函数可以创建抽象基类,用于多态性。 通过深入理解和实践这些概念,你将能够更好地理解和应用C++中的函数调用和重载技术。同时,这个系列教程的持续更新意味着你将...

    Java编程范例源代码

    41-60.zip和61-80.zip可能涉及到更深入的面向对象编程,包括接口、抽象类、枚举以及反射等特性。81-101.zip则可能包含了一些高级话题,如Java Swing或JavaFX图形用户界面(GUI)开发,网络编程,或者是Java的IO/NIO...

    Java Programming Languag Source

    2. **SL-120**:可能进一步深入到面向对象编程(OOP)的核心概念,如封装、继承、多态性,以及接口和抽象类的使用。此外,可能还涉及异常处理和集合框架(如ArrayList,LinkedList,HashMap等)。 3. **SL-285**:...

    一个通用的数据库分页类

    首先,这个分页类可能需要与不同的数据库系统兼容,如MySQL、PostgreSQL、SQLite等,因此它可能使用PDO(PHP Data Objects)作为数据库抽象层,提供统一的接口来执行SQL语句。通过PDO,类可以动态构建分页所需的SQL...

    POOInacap:便便

    Java通过接口(interface)和抽象类(abstract class)来实现多态。 4. **类与对象**:类是对象的模板,描述了一组具有相同特征和行为的对象。对象是类的实例,通过`new`关键字创建。 5. **接口**:Java中的接口是...

    大公司JAVA面试试题

    - 掌握构造函数、重载与重写、抽象类和接口的区别与使用场景。 - 理解访问修饰符(public, private, protected, default)的作用和限制。 2. **内存管理与垃圾回收**: - 了解堆和栈内存的区别,以及对象在内存...

    TankGame

    5. **面向对象编程**:游戏中的每个实体(坦克、炮弹、障碍物)都可以被抽象为类,这些类之间可能存在继承关系,以实现代码重用和结构化设计。 6. **数据结构与算法**:游戏状态的管理,如坦克的位置、生命值、得分...

    JDK的Parser来解析Java源代码详解

    JavaParser类是用于演示如何使用JDK的内部编译API来解析Java源代码的示例。...尽管使用起来有一定的挑战性,但通过`JavaCompiler`及其相关类,我们可以直接操作Java源代码的抽象语法树,从而实现更复杂的代码处理任务。

Global site tag (gtag.js) - Google Analytics