java - 继承示例解释、编码和方法等?

标签 java inheritance

我根本不懂继承。 据我所知,继承意味着子类或子类可以“继承”或检索?来自其父类/父类(super class)的方法和值。

我有点明白了this example ,但我还是不太清楚。

如果我在动物、鸟类和狗中放置一个 if 语句,也会得到一个 if 语句吗?

这是实际的代码,我没有完成主类的最后一部分,因为它对我来说有点清楚。

另外,System.out.println() 在主类中到底在做什么,它是否打印所有字符串?

为什么当我单独运行这些类时,实际上没有打印出任何内容,但是当我运行主类时,所有内容都会打印出来?

public class Animal {
public Animal() {
    System.out.println("A new animal has been created!");
}   
public void sleep() {
    System.out.println("An animal sleeps...");
}
public void eats() {
    System.out.println("An animal eats...");
}
}

然后是鸟

public class Bird  extends Animal {

public Bird() {
    super();
    System.out.println("A new bird has been created!");
    // TODO Auto-generated constructor stub
}
public void sleep() {
    System.out.println("A bird sleeps...");
}
public void eats() {
    System.out.println("A bird eats...");
}

}

然后是狗

public class Dog extends Animal {

public Dog() {
    super();
    System.out.println("A new dog has been created!");
    // TODO Auto-generated constructor stub
}
public void sleep() {
    System.out.println("A dog sleeps...");
}
public void eats() {
    System.out.println("A dog eats...");
}
}

然后这个主类

public class MainClass {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Animal animal = new Animal();
    Bird bird = new Bird();
    Dog dog = new Dog();

    System.out.println();
}

}

最佳答案

我会尝试用最简单的方式解释:

Animal父类(super class)

每个动物 sleep ,所以这些方法都在父类(super class)

当您创建特定动物的对象时。

    Animal animal = new Animal();

调用 Animal 的构造函数打印:

System.out.println("A new animal has been created!");

    Bird bird = new Bird();

super() 之后调用 Bird 的构造函数,转到 Animal 的构造函数,因此打印两个 sysouts

    Dog dog = new Dog();

狗类似

System.out.println() 在主类中到底做了什么?

它实际上什么也没做。如果将其删除,代码仍会打印。 尝试一下。

关于java - 继承示例解释、编码和方法等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27508119/

相关文章:

c# - 我有一个类 A<T> : IEnumerable<T>, 我想添加 IEquatable<A<T>> 如果 T : IEquatable<T>. 我该怎么做并保留 IEnumerable?

java - jsp 和独立 java 应用程序有哪些功能差异?

java - BHSM-Servlet 不允许浏览器缓存用户名

java - 如何从http服务器获取重定向url?

c++ - 输出到多个 ostream(文件和控制台)的类

c++ - 覆盖非虚拟方法?

c# - 为什么属性隐藏同名的继承函数?

java - 防止事务标记为回滚

java - 查找包含给定坐标的区域

c# - 泛型的继承