本文开始:
- 本文大部分内容来自于《java程序设计实践教程》(2011年1月第1版)
类Polymorphism中的方法syaMe需要一个student类型的参数,除了上述示例中的UniversityStu 、 middleStu、PrimaryStu类型的对象外,也可以是其他Student的子类的对象,甚至使用Polymorphism编译完成之后新编写其他的Student子类也不会有问题,也就是说,先写的方法可以将后完成的类作为参数接收。这也是面向对象的编程的一个特点
class Student {
public void introduce() {
System.out.println("我是张三,我是一个学生");
}
}
class UniversityStu extends Student {
public void introduce() {
System.out.println("我是张三,我今年23岁,就读于北京大学");
}
}
class MiddleStu extends Student {
public void introduce() {
System.out.println("我是李四,今年15岁,就读于育才中学");
}
}
class PrimaryStu extends Student {
public void introduce() {
System.out.println("我是王五,今年9岁,就读于华尔街小学");
}
}
class Polymorphism {
public void sayMe(Student stu) {
stu.introduce();
}
}
public class ExtendExample {
public static void main(String[] args) {
Polymorphism pmp = new Polymorphism();
UniversityStu uni = new UniversityStu();
MiddleStu midd = new MiddleStu();
PrimaryStu pri = new PrimaryStu();
pmp.sayMe(uni);
pmp.sayMe(midd);
pmp.sayMe(pri);
}
}
运行结果:
