继承和压倒一切

时间:2013-12-10 03:52:39

标签: java inheritance

我希望每个dono,domin,doadd,docalc分别放在另一个类的子类的方法中。现在他们在同一个班级的方法中。有人能告诉我一个例子,如何在另一个类的子类的方法中编写那些以及如何将它们调用到当前的条件语句中?

另外,如果我将这些条件语句与子类下的每个方法一起使用,我该怎么做?我知道这需要重写,但对我来说这很复杂。

感谢。

public void Act(String activity)
{


    if(length<2)
    {
        dono(activity);
    }
    else if(length==3)
    {
        domin(activity);
    }
    else if(length==4)
    {
        doadd(activity)
    }
    else if(length==5)
    {
        docalc(activity);
    }
    else
    {
        system.out.println("Invalid try again");
    }
    out.println("\n");
}

1 个答案:

答案 0 :(得分:0)

听起来你有关于继承的某种功课,这很好,但如果我们只是告诉你答案,你就不会明白这一点。了解Java(和大多数现代语言)如何面向对象,非常对于学习如何正确编码非常重要。

我简化了这一点,但是这样想:你能想到的任何名词都可以是它自己的类。 A&#39;班级&#39;实际上它只是一个构造,我们必须帮助我们组织代码,它只是一组数据和计算数据。如果我们没有课程,那么我们的代码会越来越难以编写,而且几乎不可能在多个程序员之间进行同时处理。

继承是我们继承&#39;的一种方式。来自更一般的班级的信息。例如,我们假设我们有课程CarCar有一些不同的数据字段,也许我们的程序最初设计的方式是我们所有的数据都完全适合这种形式。所以,也许我们的main方法有很多声明,比如Car car9 = new Car("blue", "Ford", 2005),很酷。但是等等 - 现在一些不适合数据集的东西到了!让我们说它是Mustang,它需要有一个名为engine的变量的数据。那不在我们的Car课程中,所以我们有三个选择: 1.将engine添加到Car。显然,这不是理想的;我们的许多条目最终都不会使用它,如果我们不小心的话,我们可能会遇到无效的问题。 2.复制Car,将其重命名为Mustang,然后添加额外数据。这个解决方案确实有效,但请查看所有重复的代码!每当我们在任何一个班级改变任何东西时,我们都必须记得回去改变另一个! 3.继承。这是我们想要的解决方案。因为Mustang&#34;是-a&#34; Car,我们可以定义一个新类,从其父级继承它的选项,或者它的超级类#34;。为此,我们使用extends关键字:public class Mustang extends Car{。现在,Mustang只需Car即可自动使用super().ATTRIBUTE_OR_METHOD所拥有的所有。此外,Mustang可以定义自己的新方法,新属性,我们将能够创建Mustang类,就像我们创建Car:Mustang m = new Mustang("blue", "Ford", 2013, "awesome engine 3000")一样。我们将所有工作都放入Car类中,而无需复制任何代码!棒极了吧?

作为旁注,Java有一个非常酷的概念叫做&#34; polymorphism&#34;如果你扩展一个类,你仍然可以使用它的超类声明:Car m = new Mustang("blue", "Ford", 2013, "awesome engine 3000")。当您了解继承所涉及的权力和缺点时,这非常有用。

长话短说:创建一个超级类,保持你的普遍性&#39;方法和数据,然后使用extends关键字的继承来创建超类的更具体的分支(称为&#34;子类&#34;)。