Java 如果将一个类更改为抽象类并在另一个类中进行扩展,如何使用该类中的对象?

Java 如果将一个类更改为抽象类并在另一个类中进行扩展,如何使用该类中的对象?,java,Java,我想把我创建的一个类转换成一个抽象类,并得到另一个类来扩展它。这是因为类(粒子)严重依赖于我想要抽象的类(向量) 我不确定我将如何使用我用new关键字实例化的所有对象,或者它是否会把事情搞得一团糟。我愿意尝试在我自己的例子中学习一些关于使用抽象类的知识,但是如果有人能帮助我理解我在做什么,那就太好了 如果您的新类依赖于vector,那么与其继承它,不如尝试组合。。。 所以,假设您想创建自己的队列,那么从vector继承而不是使用vector类型的数据成员不是一个好主意。 这比继承有许多优点。如果

我想把我创建的一个类转换成一个抽象类,并得到另一个类来扩展它。这是因为类(粒子)严重依赖于我想要抽象的类(向量)


我不确定我将如何使用我用new关键字实例化的所有对象,或者它是否会把事情搞得一团糟。我愿意尝试在我自己的例子中学习一些关于使用抽象类的知识,但是如果有人能帮助我理解我在做什么,那就太好了

如果您的新类依赖于vector,那么与其继承它,不如尝试组合。。。 所以,假设您想创建自己的队列,那么从vector继承而不是使用vector类型的数据成员不是一个好主意。 这比继承有许多优点。如果您需要将容器更改为其他设置,那么您不必担心更改接口。您仍然会有一些添加和删除接口到您的类。因此,客户端代码将独立于用于生成队列的容器。
单边注释:考虑在继承上使用构图。看看一些设计模式,试着理解什么时候需要组合,什么时候不能避免继承

据我所知,您正试图将
类MyClass
转换为
抽象类AbstractMyClass

因此,如果将MyClass转换为抽象类

AbstractMyClass myClass=new AbstractMyClass();
将给您一个错误,因为您无法创建AbstractMyClass的实例。 另外,如果情况是

abstract class AbstractMyClass
{
}
class ConcreteMyClass extends AbstractMyClass
{
}
然后你可以做一些类似的事情

AbstractMyClass abstractMyClass=new ConcreteMyClass();
还是老样子

ConcreteMyClass concreteMyClass=new ConcreteMyCLass();

继承:是一种关系。更重要的是,基类和子类的接口应该是相同的。这里,您不希望客户端代码使用push_back()添加新元素(对于C++),而是使用类似add()的方法。因此,接口不同,这清楚地表明错误使用了继承。Composition:有一个,并且“根据实现”。这是Scott Mayer在C++中的有效用法。与您的情况一样,您希望在某些方面实现一个新的数据结构。所以你需要的就是构图。现在派生类不需要有相同的接口。一般来说,若您发现接口是相同的,那个么它更像是继承,若不是组合。在继承方面,合成还有很多其他优势。只要谷歌或挑选任何好的设计书

请张贴一些相关的代码,你想怎么做。这有助于提供有效的答案。现在这个问题很模糊。我想我可能已经在用作文了。是什么让这类事情变得更好?