黑马程序员技术交流社区

标题: 我对方法重载和方法覆盖的理解 [打印本页]

作者: alee    时间: 2014-8-13 21:46
标题: 我对方法重载和方法覆盖的理解
方法重载(overloading):编译时多态。
在一个类的内部,方法名相同形参数不同的方法,对返回类型不要求,这种现象称之为重载;
编译器会自动选择使用的方法。体现了一个编译时多态。
好处:对使用者屏蔽因为参数不同造成方法间的差异。
找方法时如果没有合适的,采取自动向上扩展原则。
调用时形参之间的区别一定要明确。
    1. 形参的个数不同
    2. 形参的类型不同
    3. 形参的顺序不同
    4. 形参的名字相同
方法覆盖(override):运行时多态。
1,发生在父类和子类之间
2,方法名相同,参数相同,返回类型相同
3,子类方法的访问权限不能更严格,只能等于或更加宽松。
构造方法:
1,没有返回类型,方法名必须和类同名。
2,构造方法不能手动调用,它只用在创建对象在时候,只出现在new之后。
        只要构造方法被调用运行,就一定有对象产生。
3,在一个对象的生命周期里,构造方法只能被调用一次。
4,类写好后一定有构造方法,
        如果程序没有显示的提供构造方法,JVM会提供一个默认的构造方法,public classname(){}
        如果程序显示提供,系统不再提供默认的
5,同一个类的多个构造方法一定重载。
6,创建对象的同时构造方法的代码块里还可以写需要运行的代码,还可以给属性(实例变量)赋值,
        引用类型的属性赋值就是用new创建对象,然后调用构造方法。如:Student stu=new Student();






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