[英]Inheritance in java - something that i cannot understand
我对 Java 中的继承有疑问,我无法理解:
我有这两个类:
public class C
{
public void foo(D d)
{
System.out.println("cd");
}
}
public class D extends C
{
public void foo(C c)
{
System.out.println("dc");
}
public void foo(D d)
{
System.out.println("dd");
}
}
和主要:
public static void main(String[] args)
{
C cd = new D();
D dd = (D)cd;
}
cd
和dd
的类型是什么,为什么?
这里涉及两种不同的类型:
变量的类型与它当前所引用的对象的类型无关——反之亦然,对象的类型不依赖于访问它的变量的类型。 因此,当您将一个对象分配给另一个不同的变量时,它的类型不会受到影响。
所以,
cd
的类型是C
;D
。所以我们可以这样引入继承的概念......
从前一个类中确定并拖动其'的特征和品质,并为我们自己创建一个像前一个类一样的新类,具有前一个类的特征和品质..那么,前一个类将是超级类,而新的类将是子类..
例如:-孩子们有他们父母的特征和品质。
import javax.swing.*;
class Form extends JFrame{
}
class Demo{
public static void main(String[] args){
Form f1=new Form();
f1.setSize(300,300);
f1.setTitle("Form");
f1.setDefaultCloseOperation(Form.EXIT_ON_CLOSE);
f1.setVisible(true);
}
}
将从以下几点开始我的回答:
这意味着。 cd 是类 C(Parent) 的引用,现在隐式转换为类 D(Child)。 子类引用变量(dd)再次存储子类(D)的对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.