[code="java"]class SuperClass
{
public void printSuper()
{
System.out.println("SuperClass method");
}
}
class SubClass extends SuperClass
{
public void printSub()
{
System.out.println("SubClass method");
}
}
public class TestOver
{
public static void main(String[] args)
{
SubClass sub = new SubClass();
sub.printSub();
sub.printSuper();
}
}
[/code]
上述代码中SubClass类继承自Object类,和SuperClass类,但是上述的运行结果是对的呀?并不出现编绎提示错误。
不知怎么贴图,所以以附件形式呈上来了。
所有的类都隐式的继承自Object是说如果你没有显式地给类指定父类时,编译器会给类加一个父类Object,如果你给它指定了父类,编译器就不会多此一举了
一个对象只能有一个父类,所说的不能多继承是说一个类只能有一个父类。当类a继承了类b,b类是a类的父类,Object类是b的根,你可以理解为b的grandfather。
不允许多继承是说一个extends之后只能有一个类,对比一下c++就理解了。
1,首先来看看 单继承 和 多继承。
单继承 object -> a -> b
多继承 object \
b
a /
2,上了上面的,就明白了,java中是object -> a -> b这种单继承,并不是这种情况下b既可以认为是a,又可以认为是object,b就成了多继承实现了。
object是虚拟机自动给你extends上去的,你自己extends的时候,只能extends1个类,所以不允许多继承
1.如果你的类(除Object)外没有继承任何类,那么默认会为你继承Object
2.如果你的类有继承任何其他它,其只会继承此类
明白否?