java子类型、子类和true子类型
我已经阅读了很多关于java子类型和真正的子类型以及 子类,但每次我变得更困惑,请我需要一个完美的解释,所有上述提到的,我在下面的陈述是正确的java子类型、子类和true子类型,java,inheritance,Java,Inheritance,我已经阅读了很多关于java子类型和真正的子类型以及 子类,但每次我变得更困惑,请我需要一个完美的解释,所有上述提到的,我在下面的陈述是正确的 从另一个类继承的每个类都是一个子类 如果某个类具有相同的方法,则该类是另一个类的java子类 真正的子类型是当我们可以替换两个类之间的引用时 提前感谢这些陈述中只有第一条是正确的 #2:如果一个类是另一个类的子类,它将具有相同的方法(此语句的相反部分不一定正确)。考虑这个例子: public class Animal { public void
提前感谢这些陈述中只有第一条是正确的 #2:如果一个类是另一个类的子类,它将具有相同的方法(此语句的相反部分不一定正确)。考虑这个例子:
public class Animal
{
public void sayHello ()
{
System.out.println ("Hello!");
};
}
public class Dog extends Animal
{
public void sayHello ()
{
System.out.println ("Woof! I'm a dog.");
};
}
public class WebApplication
{
public void sayHello ()
{
System.out.println ("Welcome!");
};
}
WebApplication
和Dog
都有类似的sayHello
方法,但只有Dog
是Animal
的一个子类
#3:我不知道你说的“替换引用”是什么意思。如果
Dog
是Animal
的一个子类,则可以将Dog
对象指定给Animal
引用,但不能反之亦然。从另一个类继承的每个类都是子类
我会纠正这一点
“扩展另一个类的每个类都是一个子类”
仅供参考,默认情况下,java中的每个类都扩展了java.lang.Object
类,但Object
类本身除外
如果某个类具有相同的方法,则该类是另一个类的java子类
事实并非如此。考虑下面的例子
class A {
public void someMethod(){
// method code
}
}
class B {
public void someMethod(){
// method code
}
}
两者都是独立类,B
不是A
的子类,A
不是B
的子类
真正的子类型是指我们可以替换两个类之间的引用
编辑:
class A {
public void someMethod(){
// method code
}
}
class B extends A{
public void someMethod(){
// method code
}
}
您可以创建类B
的对象,该类是A
as的子类
A objB = new B();
这一概念是正确的。你可以看一篇关于这方面的文章。你能解释一下,我考试了,我完全迷路了,因为每次我理解的东西都不一样!!谢谢,但是java子类型和true子类型之间还有什么区别呢?而且如果类A扩展了B,那么这里的每个B都是A,那么我可以在它们之间进行替换!