接口、类、抽象类、对象的另类解释
来源:互联网 发布:在哪里能搞到游戏源码 编辑:程序博客网 时间:2024/04/26 16:22
本文为原创,如需转载,请注明作者和出处,谢谢!
大家也许都知道做工艺器或是工厂里做生产某些产品的模具模具。如做一个金属的五角星,只要将钢水罐到五角星的模具模具里就可以很容易地制做五角星。
我们也可以将类比喻成做五角星的模具。 而生产出的一个个五角星就是一个个对象。 为了建立不同的对象(有的是金属的、有的塑料的,等等),可通过向模具里灌入不同的液态材料就可以制做。这也相当于向类的构造方法中传入不同的参数(相当于不同的液态材料)。
还有就是接口,如果说类是对象的抽象,那么接口就是类的抽象。
我们也可以将接口看成是制做这个五角星模具的规格列表(相当于接口中的抽象方法)。也就是说,只有这个模具(类)符合(实现)相应的规格(接口),才会成为制做五角星的模具模具。
哈哈,当然,这个使用模具生成五角星及其他产品的工厂可以看成是对象工厂。
也就是说,类和接口都不是实际的产品,都不能拿来用,类相当于模具(没人会拿模具模具在商店里卖吧,估计只有对象工厂会买),而接口只相当于制做模具的规格列表,如尺寸、角度等。而这些规格列表的内容需要在具体类中实现才可能成为具体的模具,如长度和宽度,如果在类中实现为长度等于宽度,那么这个类就成为一个成方形的模具,如果长度不等于宽度,就是一个长方形的模具。然后再实例化这个模具(类),就生成出一个个正方形或长方形对象。
在面向对象理论中还有一个抽象类,这个抽象类其实就相当于一个半成品的模具。如只实现在长度和宽度(相当于在抽象类中已实现的方法),并没有实现深度(这个深度相当于抽象类中的抽象方法,这个抽象方法需要在抽象类的子类中实现)。所以这个模具就是半成品了。因此,是无法直接拿半成品的模具(抽象类)去生产(实例化)产品(对象)的。
国内最棒的Google Android技术社区(eoeandroid),欢迎访问!
《银河系列原创教程》发布
《Java Web开发速学宝典》出版,欢迎定购
大家也许都知道做工艺器或是工厂里做生产某些产品的模具模具。如做一个金属的五角星,只要将钢水罐到五角星的模具模具里就可以很容易地制做五角星。
我们也可以将类比喻成做五角星的模具。 而生产出的一个个五角星就是一个个对象。 为了建立不同的对象(有的是金属的、有的塑料的,等等),可通过向模具里灌入不同的液态材料就可以制做。这也相当于向类的构造方法中传入不同的参数(相当于不同的液态材料)。
还有就是接口,如果说类是对象的抽象,那么接口就是类的抽象。
我们也可以将接口看成是制做这个五角星模具的规格列表(相当于接口中的抽象方法)。也就是说,只有这个模具(类)符合(实现)相应的规格(接口),才会成为制做五角星的模具模具。
哈哈,当然,这个使用模具生成五角星及其他产品的工厂可以看成是对象工厂。
class ObjectFactory
{
public static 五解星 create五角星() {}
public static 圆 create圆() {}
public static 椭圆 create椭圆() {}
}
{
public static 五解星 create五角星() {}
public static 圆 create圆() {}
public static 椭圆 create椭圆() {}
}
也就是说,类和接口都不是实际的产品,都不能拿来用,类相当于模具(没人会拿模具模具在商店里卖吧,估计只有对象工厂会买),而接口只相当于制做模具的规格列表,如尺寸、角度等。而这些规格列表的内容需要在具体类中实现才可能成为具体的模具,如长度和宽度,如果在类中实现为长度等于宽度,那么这个类就成为一个成方形的模具,如果长度不等于宽度,就是一个长方形的模具。然后再实例化这个模具(类),就生成出一个个正方形或长方形对象。
在面向对象理论中还有一个抽象类,这个抽象类其实就相当于一个半成品的模具。如只实现在长度和宽度(相当于在抽象类中已实现的方法),并没有实现深度(这个深度相当于抽象类中的抽象方法,这个抽象方法需要在抽象类的子类中实现)。所以这个模具就是半成品了。因此,是无法直接拿半成品的模具(抽象类)去生产(实例化)产品(对象)的。
国内最棒的Google Android技术社区(eoeandroid),欢迎访问!
《银河系列原创教程》发布
《Java Web开发速学宝典》出版,欢迎定购
- 接口、类、抽象类、对象的另类解释
- 接口、类、抽象类、对象的另类解释
- 对象 接口 抽象类
- 面向对象概念及对象、抽象、类的解释
- 面向对象的抽象类与接口
- 举例解释对抽象类和接口的理解
- 面向接口、面向对象;接口、抽象类的理解
- 面对对象-抽象类、接口
- 抽象类,接口,匿名对象
- 抽象类的接口
- 屏幕布局动态划分的另类思考----抽象屏幕类
- 接口、类、抽象类、对象,继承的理解
- PHP的类和对象(六)抽象类和接口
- 面向对象与类的+抽象类和接口小结
- c#接口和抽象类的区别 ---- 面向对象概念
- Java初级--抽象类,接口及对象的类型转换
- 面向对象(高级)抽象类与接口的应用
- Java面向对象高级--抽象类与接口的应用
- Struts2教程8:拦截器概述
- Java SE 6之GUI:让界面更加绚丽(下)
- Java SE 6之GUI:让界面更加绚丽(上)
- Struts2教程7:上传任意多个文件
- 关于Java String对象创建问题解惑
- 接口、类、抽象类、对象的另类解释
- 【转载】牛人们如何让自己Blog流量爆涨-经验谈
- 【转载】Web Services&XML:XML与HTML的结合(数据岛的应用)
- Struts2教程6:在Action类中获得HttpServletResponse对象的四种方法
- Struts2教程5:使用Validation框架验证数据
- Struts2教程4:使用validate方法验证数据
- Struts2教程3:struts.xml常用配置解析
- Struts2教程2:处理一个form多个submit
- Struts2教程1:第一个Struts2程序