重载VS重写
重载VS重写
一、什么是重载?
重载是一种静态地多态机制,通过相同的方法名来实现不同的方法。
重点:
1)那么是如何达到相同的方法名实现不同的方法的呢?——根据方法体的实参和型参来决定相应的方法。
2)构造方法和普通方法都可以重载,但是构造方法没有返回类型。
3)私有的重载方法不能被生成的对象直接调用
实例分析:
package TextExtends;/** * 学生类 * @author Sean 2012 - 8 */public class Student {/** * 重载方法 * @param number */public void print(String number){System.out.println("学号:"+number);}/** * 重载方法一 * @param number * @param name */ void print(String number,String name){System.out.println("学号:"+number+" 姓名:"+name);}/** * 重载方法二 * @param number * @param name * @param age */ void print(String number,String name,int age){System.out.println("学号:"+number+" 姓名:"+name+" 年龄:"+age);}/** * 重载方法三 * @param number * @param name * @param age * @param score */ void print(String number,String name,int age,double score){System.out.println("学号:"+number+" 姓名:"+name+" 年龄:"+age+" 分数:"+score);}}
package TextExtends;/** * 主程序类 * @author Sean 2012 - 8 */public class Master {/** * 主程序入口 * @param args */public static void main(String[] args) {/** * 创建三个学生信息 */Student student1 = new Student();Student student2 = new Student();Student student3 = new Student();Student student4 = new Student();/** * 显示学生信息 */student1.print("000001");student2.print("000002", "李四");student3.print("000003","王五",17);student4.print("000003","赵六",18,89.78);}}
package TextRewrite;/** * 学生类 * @author Sean 2012 - 8 */public class Student {/** * 定义了一个方法 */ void print(){System.out.println("我是父类!!!");}}
package TextRewrite;/** * 大学生类 * @author Sean 2012-8 */public class CollegeStudent extends Student{/** * 重写父类中的print方法 */public void print(){System.out.println("我是子类中的方法!!!");}}
package TextRewrite;/** * 主程序类 * @author Sean 2012 - 8 */public class Master {/** * 主程序入口 * @param args */public static void main(String[] args) {/** * 创建三个学生信息 */Student student1 = new Student();Student student2 = new CollegeStudent();CollegeStudent student3 = new CollegeStudent();/** * 调用对象中的print方法 */student1.print();student2.print();student3.print();}}