黑马程序员技术交流社区

标题: 创建子类对象时,父类构造函数中调用被子类重写的方法 [打印本页]

作者: yijincheng    时间: 2016-3-18 22:48
标题: 创建子类对象时,父类构造函数中调用被子类重写的方法
但是不会调用被子类重载的方法。
例:
public class Basic{
    public void add(int i)
    {
        System.out.println("Basic add");
    }

    public Basic()
    {
        add('a');
    }
}

public class A extends Basic{
    public void add(int i)
    {
        System.out.println("A add");
    }
}

public class B extends Basic{
    public void add(char i)
    {
        System.out.println("B add");
    }
}

public class Main{
    public static void main(String[] args)
    {
        A a = new A();
        B b = new B();
    }
}

作者: 就是我    时间: 2016-3-19 10:14
感觉可以试着理解下,重载和重写的概念
重载:是多重载入的意思,就是说加载了很多种类,根据你的参数类型,需要哪个调用哪个
        就是说,子类重载了父类的方法,子类中实际上会存在两个名称相同,参数不同的方法,(都存在,根据参数调用)
重写:是改写的意思,在子类中,父类的该方法已经被覆盖掉,不存在了.
你直接创建子类引用指向子类对象,无论编译还是运行,看的都是子类




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2