/*
这是一个关于继承一个最基本的小知识点,关于调用顺序的问题,很多初学者刚开始接触面向对象的语言时可能也会像我一样搞不清他们的执行顺序,他的规则是:如果父类和子类有相同成员(非私有),当在主类创建子类对象时,对象调用成员时会优先调用子类中的成员(非私有),而当只有父类有此成员时,则会调用父类的成员,下面举个例子说明:
*/
class Father //这是一个父类,有show()方法
{
void show(){
System.out.println("father");
}
}
class Son extends Father //这是一个子类,也有show()方法,继承父类father
{
void show(){
System.out.println("son");
}
}
class ExtendsDemo //主类
{
public static void main(String[] args)
{
Son s = new Son(); //创建子类对象
s.show(); //调用同名的方法
}
}
/*
在这个情况下,执行结果是:son,因为子类和父类中有同名成员(非私有),则会优先调用子类中的成员。
*/
class Father
{
void show(){
System.out.println("father");
}
}
class Son extends Father
{
}
class ExtendsDemo
{
public static void main(String[] args)
{
Son s = new Son();
s.show();
}
}
/*
在这是,show方法只在父类中有,则会调用父类中的show方法,因为子类中没有。
这个小知识点大家一定搞清楚~~
*/
这是一个关于继承一个最基本的小知识点,关于调用顺序的问题,很多初学者刚开始接触面向对象的语言时可能也会像我一样搞不清他们的执行顺序,他的规则是:如果父类和子类有相同成员(非私有),当在主类创建子类对象时,对象调用成员时会优先调用子类中的成员(非私有),而当只有父类有此成员时,则会调用父类的成员,下面举个例子说明:
*/
class Father //这是一个父类,有show()方法
{
void show(){
System.out.println("father");
}
}
class Son extends Father //这是一个子类,也有show()方法,继承父类father
{
void show(){
System.out.println("son");
}
}
class ExtendsDemo //主类
{
public static void main(String[] args)
{
Son s = new Son(); //创建子类对象
s.show(); //调用同名的方法
}
}
/*
在这个情况下,执行结果是:son,因为子类和父类中有同名成员(非私有),则会优先调用子类中的成员。
*/
class Father
{
void show(){
System.out.println("father");
}
}
class Son extends Father
{
}
class ExtendsDemo
{
public static void main(String[] args)
{
Son s = new Son();
s.show();
}
}
/*
在这是,show方法只在父类中有,则会调用父类中的show方法,因为子类中没有。
这个小知识点大家一定搞清楚~~
*/