【问题标题】:giving value from one class to extended one Java将一个类的价值赋予一个扩展的 Java
【发布时间】:2014-03-13 22:40:47
【问题描述】:

我真的不知道如何解释自己,所以我只是告诉你们我应该做什么以及我得到了什么。 我的老师告诉我们完成其余的代码,以便主要工作。 这是给我的:

public static void main(String args[]) 
{
dog buli=new dog();
cat felix=new cat(); 
cuckoo wallwatch=new cuckoo();
talks(buli);
talks(felix);
talks(wallwatch); }
}

输出应该是: 瓜奥 缪 黄瓜

我得到了什么(这个班动物也是主要的):

public abstract class Animals {
public String sound;
Animals (String sound){
    this.sonido = sound;
}
    public void talks(){
    System.out.println(sound);
}

而且只是狗的下类(dog.java),因为这三个是相同的:

public class dog extends Animals{

dog (String sound){
    sound = "guau";
}

}

说实话,我在使用 java 时遇到了很多我在使用其他语言时从未遇到过的问题, 我似乎无法理解与类或对象相关的任何内容。 :S 谢谢。

【问题讨论】:

  • Dog dog = new Dog("rover"); 然后调用它:dog.talk();
  • 主不能编辑

标签: java class oop object


【解决方案1】:

在包含 main 函数的同一个类中,添加以下函数。

private static void talks(Animals animal) {
    animal.talk();
}

然后编写以下类。 (请注意,每个类都应位于名为“class-name.java”的不同文件中......dog.javaAnimals.java 等)

Animals.java

public class Animals {
    public String sound;

    Animals(String sound) {
        this.sonido = sound;
    }

    public void talks() {
        System.out.println(sound);
    }
}

狗.java

public class dog extends Animals{

    dog (String sound){
        super(sound);
    }
}

其他的也一样..

祝你好运

【讨论】:

    【解决方案2】:
    public abstract class Animals {
       private String sound;
       public Animal(String sound){
          this.sound = sound;
       }
    
      public void talks(){
         System.out.println(sound);
      }
    }
    
    public class Dog extends Animal {
       public Dog() {
          super("woof");
      }
    }
    
    public class Cat extends Animal {
       public Cat() {
          super("meow");
       }
    }
    
    
    public class Main {
         public static void talks(Animal animal) {
            animal.talk();
         }
    
        public static void main(String[] args) {
            Dog dog= new Dog();
            Cat cat = new Cat();
            talks(dog);
            talks(cat);
       }
    } 
    

    【讨论】:

    • 我无法修改主目录
    • 创建类似于 Dog 的 cat 和 cuckoo 类。然后你就可以复制main了。
    • 我告诉你我不能创建任何像 dog dog = new dog("woof") 这样的对象,如果我可以的话,我不会在这里问,虽然谢谢回答
    • 子类 Dog 和 Cat 具有零参数构造函数,但它们调用父类构造函数时传入特定于它们的类型(例如 Dog、Cat)的声音。
    • 伙计,我不能编辑主目录,这就是(我猜)程序的重点,或者我的老师写错了(我怀疑这是因为他喜欢让我们受苦)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-21
    • 2013-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多