1.函数的重载:在同一个类里面,允许存在一个以上同名方法,只要他们参数类型和参数个数不同即可
例如:
public class Student { public int id; int age; public void sout(){ //函数sout,无参数传入 System.out.println(age + id); } public void sout(int age){ //函数sout,有一个参数传入 System.out.println(age * id); } }
实例:
Student liutao = new Student(3,16); liutao.sout(); liutao.sout(16);
运行结果:
19
48
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2.函数的重写
①定义一个大类Person
public class Person { int id; //属性部分继承,部分私有 private String name; private int age; public Person(){ } //2.01 无参构造器,无返回值 public Person(int id,String name){ //2.02 两个参数的构造器,无返回值 this.id = id; this.name = name; } public Person(int id, String name,int age){ //2.03 三个参数的构造器,无返回值 super(); //调用父类无参构造方法,super,代表父类对象 this.id = id; //身份证号 this.name = name; this.age = age; } public void show() { //父类Person的方法 System.out.println("父类Person的方法"); } public String getName() { //得到name和age的方法 return name; //使用Person类里面的属性name和age所需要使用的方法 } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Person{" + "id=" + id + ", name='" + name + '\'' + ", age=" + age + '}'; } }
② 写一个子类Student
public class Student extends Person { private String className; //学生的学号 public Student(){} //无参构造器,无返回值 public Student(int id,String className){ //两个参数构造器,无返回值 this.id = id; //id是共有的 this.className = className; }
public String getClassName() { //使用className所需要使用的工具 return className; } public void setClassName(String className) { this.className = className; }
// @Override //点击show,然后点击enter,就出来了 // public void show() { // super.show(); //这样使用的是父类的方法,输出结果还是:父类Person的方法 //super.show 意思是父类的方法 // }
@Override public void show() { System.out.println("这个方法经过子类给改了"); } //运行结果:这个方法经过子类给改了
}
③创建一个实例
改子类的方法前: Student student = new Student(12,"llll"); student.show();
输出结果:
父类Person的方法
改进后:这个方法经过子类给改了