一:认识多态
1.什么是多态?
同类型的对象,表现出的不同形态。
2.多态的表现形式:
父类类型 对象名称 = 子类对象;
3.多态的前提:
①有继承/实现关系。
②有父类引用 指向 子类对象
Fu f = new Zi();
4.多态的好处?
使用父类类型作为参数,可以接收所有子类对象,体现多态的扩展性与便利性.
代码理解:
父类:
package duotai;
public class Person {
private String name;
private int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void show(){
System.out.println("信息为:"+this.getName()+this.getAge());
}
}
三个子类:
package duotai;
public class Student extends Person {
@Override
public void show(){
System.out.println("学生的信息为:"+this.getName()+this.getAge());
}
}
public class Teacher extends Person {
@Override
public void show() {
System.out.println("老师的信息为:"+this.getName()+this.getAge());
}
}
public class Administrator extends Person{
@Override
public void show(){
System.out.println("管理员的信息为:"+this.getName()+this.getAge());
}
}
测试类:
package duotai;
public class Test {
public static void main(String[] args) {
Student s = new Student();
Teacher t = new Teacher();
Administrator a = new Administrator();
s.setName("学生张三");
s.setAge(18);
t.setName("老师李四");
t.setAge(30);
a.setName("管理员王五");
a.setAge(25);
//三个对象 分别 调用注册方法
register(s);
register(t);
register(a);
}
//注册方法:希望这个方法技能接收老师,还能接收学生,还能接收管理员
//只能把参数写成这三个类型的父类
public static void register(Person p){
p.show();
}
}