方法的重载
定义:方法的重载是指一个类中可以定义有相同的名字,但参数不同的多个方法。根据不同的参数表选择对应的方法。
[code lang="java"] public class Test { void max(int a , int b) { System.out.println( a > b ? a : b ); } void max(short a , short b) { System.out.println("short"); System.out.println( a > b ? a : b ); } void max(float a, float b) { System.out.println( a > b ? a : b ); } public static void main(String[] args) { Test t = new Test(); t.max(3, 4); short a = 3; short b = 4; t.max(a, b); } } [/code]
方法的重写
如何定义重写:在Java程序中,类的继承关系可以产生一个子类,子类继承父类,它具备了父类所有的特征,继承了父类所有的方法和变量。子类可以定义新的特征,当子类需要修改父类的一些方法进行扩展,增大功能,程序设计者常常把这样的一种操作方法称为重写,也叫称为覆写或覆盖。重写体现了Java优越性,重写是建立在继承关系上,它使语言结构更加丰富。在Java中的继承中,子类既可以隐藏和访问父类的方法,也可以覆盖继承父类的方法。在Java中覆盖继承父类的方法就是通过方法的重写来实现的。 定义:所谓方法的重写是指子类中的方法与父类中继承的方法有完全相同的返回值类型、方法名、参数个数以及参数类型。这样,就可以实现对父类方法的覆盖。 方法的重写,可以说是,子类的方法重写了父类的方法,是在父子类。方法的重载一般在一个类中。 重写规则: 1 参数列表必须完全与被重写的方法的相同,否则不能称其为重写而是重载。 2 返回的类型必须一直与被重写的方法的返回类型相同,否则不能称其为重写而是重载。访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private) 3 重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常。例如,父类的一个方法申明了一个检查异常IOException, 在重写这个方法是就不能抛出Exception, 只能抛出IOException 的子类异常,可以抛出非检查异常。
[code lang="java"] class Person { private String name; private int age; public void setName(String name) {this.name=name;} public void setAge(int age) {this.age=age;} public String getName() {return name;} public int getAge() {return age;} public String getInfo() { return "Name: "+ name + "\n" +"age: "+ age; } } class Student extends Person { private String school; public String getSchool() {return school;} public void setSchool(String school) {this.school =school;} public String getInfo() { return "Name: "+ getName() + "\nage: "+ getAge() + "\nschool: "+ school; } } public class TestOverWrite { public static void main(String arg[]){ Student student = new Student(); Person person = new Person(); person.setName("none"); person.setAge(1000); student.setName("John"); student.setAge(18); student.setSchool("SCH"); System.out.println(person.getInfo()); System.out.println(student.getInfo()); } } [/code]
2012-05-02 16:55 刘浒