【问题标题】:What is a Subclass [closed]什么是子类 [关闭]
【发布时间】:2011-05-02 23:46:03
【问题描述】:

什么是java中的“子类”?

我知道类和方法,但我不知道子类。

【问题讨论】:

  • 看看java tag wiki上提供的初学者链接。
  • 这个页面实际上是“Java 子类”的第二次谷歌搜索。 Stack Overflow 通常比其他网站有更快的语法示例,尽管这些问题通常因为没有建设性而被关闭。

标签: java oop subclass


【解决方案1】:

子类是扩展另一个类的类。

public class BaseClass{
    public String getFoo(){
        return "foo";
    }
}

public class SubClass extends BaseClass{
}

那么……

System.out.println(new SubClass().getFoo());

将打印:

foo

这是因为子类继承了它扩展的类的功能。

【讨论】:

  • 这在 Java 中称为继承?
  • +1 任何人都可以理解的简单解释。
【解决方案2】:

子类是扩展现有类的功能的东西。即

超类 - 描述对象的类别:

public abstract class Fruit {

    public abstract Color color;

}

Subclass1 - 描述单个 Fruit 对象的属性:

public class Apple extends Fruit {

    Color color = red;

}

Subclass2 - 描述单个 Fruit 对象的属性:

public class Banana extends Fruit {

    Color color = yellow;

}

超类中的'abstract'关键字意味着该类将仅定义每个子类必须具有的强制性信息,即一块水果必须有颜色,因此它在超类中定义并且所有子类都必须“继承”该属性并定义描述特定对象的值。

这有意义吗?

【讨论】:

  • 红苹果?哈哈
【解决方案3】:

子类之于类就像 Java 之于编程语言。

【讨论】:

    【解决方案4】:

    这是一个扩展另一个类的类。

    示例取自https://www.java-tips.org/java-se-tips-100019/24-java-lang/784-what-is-a-java-subclass.html,Cat 是 Animal 的子类 :-)

    public class Animal {
    
        public static void hide() {
            System.out.println("The hide method in Animal.");
        }
    
        public void override() {
            System.out.println("The override method in Animal.");
        }
    }
    
    public class Cat extends Animal {
    
        public static void hide() {
            System.out.println("The hide method in Cat.");
        }
    
        public void override() {
            System.out.println("The override method in Cat.");
        }
    
        public static void main(String[] args) {
            Cat myCat = new Cat();
            Animal myAnimal = (Animal)myCat;
            myAnimal.hide();
            myAnimal.override();
        }
    }
    

    【讨论】:

      【解决方案5】:

      java中的子类,是继承自另一个类的类。

      继承是类在通用行为之上添加专门行为的一种方式。这通常由短语“是一种”关系来表示。

      例如,TriangleShape,因此实现 Shape 类并让 Triangle 类继承自它可能是有意义的。在这个例子中,ShapeTriangle 的超类,TriangleShape 的子类

      【讨论】:

        【解决方案6】:

        如果您有以下情况:

        public class A
        {
        }
        
        public class B extends A
        {
        }
        

        那么BA的子类,B继承自A。相反的是超类。

        【讨论】:

        • 公共类 B : A 是否意味着公共类 B 扩展 A ??
        【解决方案7】:

        将类视为对一组事物的成员的描述。该集合的所有成员都具有共同的特征(方法和属性)。

        子类是描述原始集合的特定子集的成员的类。它们共享主类的许多特征,但可能具有子类成员独有的属性或方法。

        您通过 Java 中的“extends”关键字声明一个类是另一个类的子类。

        public class B extends A
        {
        ...
        }
        

        B 是 A 的子类。B 类的实例将自动表现出许多与 A 类实例相同的属性。

        这是面向对象编程中继承的主要概念。

        【讨论】:

        • 所以一个抽象类必须包含至少1个每个子类必须有的强制性信息?包括方法? BUT 也可以包含我没有义务使用的自己的信息和方法(但仍然是一个选项)?
        • 我不认为抽象类需要有任何特别的属性。有时,您想要的只是一个类从抽象类继承的事实。 (参见“多态性”)
        【解决方案8】:

        子类是从其他类扩展而来的程序的小文件。例如,您创建了一个关于汽车的类,并拥有适用于所有汽车的基本信息以及您的构造函数和其他东西,然后您有一个从更具体的汽车或汽车系列扩展而来的类,该类将具有新的变量/方法.我看到你已经有很多上面的代码示例了,但我希望这个描述能有所帮助。

        【讨论】:

        • 它不一定是一个自己的文件。
        猜你喜欢
        • 1970-01-01
        • 2022-01-21
        • 1970-01-01
        • 1970-01-01
        • 2018-06-26
        • 2015-01-10
        • 2014-03-23
        • 2013-12-27
        • 2013-07-17
        相关资源
        最近更新 更多