【发布时间】:2011-05-02 23:46:03
【问题描述】:
什么是java中的“子类”?
我知道类和方法,但我不知道子类。
【问题讨论】:
-
看看java tag wiki上提供的初学者链接。
-
这个页面实际上是“Java 子类”的第二次谷歌搜索。 Stack Overflow 通常比其他网站有更快的语法示例,尽管这些问题通常因为没有建设性而被关闭。
什么是java中的“子类”?
我知道类和方法,但我不知道子类。
【问题讨论】:
子类是扩展另一个类的类。
public class BaseClass{
public String getFoo(){
return "foo";
}
}
public class SubClass extends BaseClass{
}
那么……
System.out.println(new SubClass().getFoo());
将打印:
foo
这是因为子类继承了它扩展的类的功能。
【讨论】:
子类是扩展现有类的功能的东西。即
超类 - 描述对象的类别:
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'关键字意味着该类将仅定义每个子类必须具有的强制性信息,即一块水果必须有颜色,因此它在超类中定义并且所有子类都必须“继承”该属性并定义描述特定对象的值。
这有意义吗?
【讨论】:
子类之于类就像 Java 之于编程语言。
【讨论】:
这是一个扩展另一个类的类。
示例取自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();
}
}
【讨论】:
java中的子类,是继承自另一个类的类。
继承是类在通用行为之上添加专门行为的一种方式。这通常由短语“是一种”关系来表示。
例如,Triangle 是 Shape,因此实现 Shape 类并让 Triangle 类继承自它可能是有意义的。在这个例子中,Shape 是Triangle 的超类,Triangle 是Shape 的子类
【讨论】:
如果您有以下情况:
public class A
{
}
public class B extends A
{
}
那么B是A的子类,B继承自A。相反的是超类。
【讨论】:
将类视为对一组事物的成员的描述。该集合的所有成员都具有共同的特征(方法和属性)。
子类是描述原始集合的特定子集的成员的类。它们共享主类的许多特征,但可能具有子类成员独有的属性或方法。
您通过 Java 中的“extends”关键字声明一个类是另一个类的子类。
public class B extends A
{
...
}
B 是 A 的子类。B 类的实例将自动表现出许多与 A 类实例相同的属性。
这是面向对象编程中继承的主要概念。
【讨论】:
子类是从其他类扩展而来的程序的小文件。例如,您创建了一个关于汽车的类,并拥有适用于所有汽车的基本信息以及您的构造函数和其他东西,然后您有一个从更具体的汽车或汽车系列扩展而来的类,该类将具有新的变量/方法.我看到你已经有很多上面的代码示例了,但我希望这个描述能有所帮助。
【讨论】: