Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我们在Java中使用基类_Java_Inheritance_Loops - Fatal编程技术网

为什么我们在Java中使用基类

为什么我们在Java中使用基类,java,inheritance,loops,Java,Inheritance,Loops,在进行设计/框架时,通常的做法是为值对象、服务、DAO等创建一个基类。例如,如果我们创建一个新的VO,它将从该BaseVO扩展。如果我们创建新的DAO,它应该从BaseDAO扩展。我们有这样一个基类的原因是什么?最好有一个母类,这样适用于所有子类的行为和数据成员可以在继承树上移 例如: Object toString(); 答案显而易见;) 因为很容易在应用程序范围内添加通用函数或逻辑 例如,如果您始终希望存储值对象的创建日期和修改日期。或者提供帮助器方法以在服务中获取数据库连接。在扩展框架时

在进行设计/框架时,通常的做法是为值对象、服务、DAO等创建一个基类。例如,如果我们创建一个新的VO,它将从该BaseVO扩展。如果我们创建新的DAO,它应该从BaseDAO扩展。我们有这样一个基类的原因是什么?

最好有一个母类,这样适用于所有子类的行为和数据成员可以在继承树上移

例如:

Object toString();
答案显而易见;) 因为很容易在应用程序范围内添加通用函数或逻辑


例如,如果您始终希望存储值对象的创建日期和修改日期。或者提供帮助器方法以在服务中获取数据库连接。

在扩展框架时,有时需要保留某些功能或字段。让我们举一个简单的例子。如果我们有一个有名字和说话能力的动物(是学校的例子,但请容忍我),那么任何动物都应该有这些东西。比如说我们有一只猫,显然猫和狗说的话不一样,所以当它们都有说话的能力时,它们给出了两个不同的结果


在您的情况下,它还支持可扩展和可交换的系统,这样您就可以交换层,而无需重写大部分代码(有时甚至不需要更改任何内容)。

我听过一句话,并在这里引用:

小程序
有一种快速变大的有趣方式


随着项目越来越大,你需要它变得更加灵活和有形。因此,通过使服务和业务逻辑松散耦合,我们可以避免对象依赖于其他实现。

BaseDAO将由跨后续类使用的通用方法组成,或者您也可以定义一个抽象方法,该方法必须实现为所有扩展类都应该具有的行为

继承、封装和多态性是面向对象编程的三个主要特征之一。继承(继承基类)使您能够创建重用、扩展和修改在其他类中定义的行为的新类


向基类添加公共方法和属性很容易。但这并不是所有情况下的正确方法。设计模式(like)使用上述OOP概念进行真正的设计。

BaseDAO可以为其所有子类做的一个例子是建立或检索到数据库的连接。在AppleDAO、PearDAO和BananaDAO中放置相同的代码会让人非常不安(如果您想在数据库中存储的是Apple、Pear和BananaDAO)

如果将用于获取DB连接的代码放入所有数据库中,则必须更改所有数据库,例如,当数据库主机发生更改时。如果它在超类中,您只需在一个地方更改它