面向对象进阶-多态
2023-12-31 14:32:43
什么是多态:同种类型的对象表现出的不同形态。
多态的表现形式:
父类类型 对象名称=子类对象;
多态的前提:
-
有继承/实现关系
-
有父类引用指向子类对象
-
有方法重写
package oop.polymorphism.a01polymorphismdemo01;
public class Person {
String name;
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(name+","+age);
}
}
package oop.polymorphism.a01polymorphismdemo01;
public class Student extends Person{
@Override
public void show(){
System.out.println("学生信息为:"+getName()+","+getAge());
}
}
package oop.polymorphism.a01polymorphismdemo01;
public class Teacher extends Person{
@Override
public void show(){
System.out.println("老师信息为:"+getName()+","+getAge());
}
}
package oop.polymorphism.a01polymorphismdemo01;
public class Administractor extends Person{
@Override
public void show(){
System.out.println("管理员信息为:"+getName()+","+getAge());
}
}
package oop.polymorphism.a01polymorphismdemo01;
public class Test {
public static void main(String[] args) {
Student s=new Student();
s.setName("karry");
s.setAge(24);
Teacher t=new Teacher();
t.setName("王见过");
t.setAge(38);
Administractor a=new Administractor();
a.setName("管理员");
a.setAge(35);
register(s);
register(t);
register(a);
}
public static void register(Person p){
p.show();
}
}
多态调用成员的特点
-
变量调用:编译看左边,运行也看左边
-
方法调用:编译看左边,运行看右边
文章来源:https://blog.csdn.net/qq_52326978/article/details/135315561
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!