2024-10-10,今天的课程比较多,改了很多线下的事情,今天先对多态进行了认识。
什么是多态?
同类型的对象,表现出的不同形态。
多态的表现形式?
父类类型 对象的名称 = new 子类对象();
fu f = new zi();
多态的前提?
1.有继承关系 2.有父类引用指向子类对象 3.有方法重写
多态的好处?
使用父类型作为参数,可以接收所有子类对象,体现多态的扩展性与便利
今天对多态初步的认识,使我对它有了一定的理解,发现以前也在用但是不知道这个是什么意思,为什么这样写,只知道这样写可以复用代码,不用写的那么杂。
下面是对用户注册的代码练习
public class Person {
private String name;
private String denglu;
public Person() {
}
public Person(String name, String denglu) {
this.name = name;
this.denglu = denglu;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDenglu() {
return denglu;
}
public void setDenglu(String denglu) {
this.denglu = denglu;
}
public void show(){
System.out.println(name + " ," + denglu);
}
}
public class Student extends Person {
public void show(){
System.out.println("学生姓名:"+ getName() +" 登陆账号:"+ getDenglu());
}
}
public class Teacher extends Person {
public void show(){
System.out.println("老师姓名:"+ getName() +" 登陆账号:"+ getDenglu());
}
}
public class Administrator extends Person{
public void show(){
System.out.println("管理员姓名:"+ getName() +" 登陆账号:"+ getDenglu());
}
}
public class Main_Test {
public static void main(String[] args) {
Student stu = new Student();
stu.setName("张三");
stu.setDenglu("123456");
Teacher T = new Teacher();
T.setName("陈老师");
T.setDenglu("12345678");
Administrator admin = new Administrator();
admin.setName("User");
admin.setDenglu("123456789");
register(stu);
register(T);
register(admin);
}
public static void register(Person p) {
p.show();
}
}
标签:进阶,String,void,多态,面向对象,denglu,public,name
From: https://blog.csdn.net/m0_71960836/article/details/142832120