多态概述
**继承:**一个一无所有的可以从他的父亲那里得到一些东西如资产,
**重写:**在继承父亲的资产后,可以按照自己的方式管理这些资产,改变以前父亲的操作方式,
**重载:**当然也可以使用与父亲相同的操作方式管理这些资产,但只要通过整合相关资源,就可以产生完全不同的成果
重写
新建以前School类作为父类
class School{
String sname;
int sid;
int snumber;
public School(String sname, int sid, int snumber) {
super();
this.sname = sname;
this.sid = sid;
this.snumber = snumber;
}
void print(){
System.out.println("学校名是:"+sname+",序号是:"+sid+",人数为"+snumber);
}
}
新建一个School1继承School,使用super调用父类中的构造器,并重写print方法
class School1 extends School{
String sadder;
public School1(String sname, int sid, int snumber,String adder) {
super(sname, sid, snumber);
this.sadder=adder;
}
void print(){
System.out.println("学校名是:"+sname+",序号是:"+sid+",人数为"+snumber+
",地址是:"+sadder);
}
}
public class SchoolTest {
public static void main(String[] args) {
School1 sc1=new School1("南京大学", 11, 22, "中山");
sc1.print();
}
}
重载
新建一个Student类,定义print方法,具有相同方法名而参数不同
class Student{
String name;
int age;
void print(){
System.out.println("姓名:"+name+"年龄:"+age);
}
void print(String name1,int age1){
System.out.println("姓名:"+name1+"年龄:"+age1);
}
void print(String name2,int age2,int id){
System.out.println("姓名:"+name2+"年龄:"+age2+"学号:"+id);
}
void print(String name3,int age3,int id3,double a){
System.out.println("姓名:"+name3+"年龄:"+age3+"学号:"+id3+"成绩:"+a);
}
}
定义ClassTest测试类
public class ClassTest {
public static void main(String[] args) {
Student stu=new Student();
stu.name="tom";
stu.age=66;
stu.print();
stu.print("tom1",77);
stu.print("tom2",88,1);
stu.print("tom3",99,2,100);
}
}