
java 多态 如何调用子类的特有方法
发布日期:2021-05-07 10:30:06
浏览次数:17
分类:原创文章
本文共 2436 字,大约阅读时间需要 8 分钟。
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 String say() { // 返回名字和年龄 return name + "\t" + age; }}
public class Student extends Person{ private double score; public Student() { } public Student(String name, int age, double score) { super(name, age); this.score = score; } public Student(String name, int age) { super(name, age); } public Student(double score) { this.score = score; } //重写父类say方法 @Override public String say() { return super.say() + " score=" + score; } //学生特有的方法 public void study() { System.out.println("学生 " + getName() + "正在学java"); }}
public class Teacher extends Person{ public double salary; public Teacher(String name, int age, double salary) { super(name, age); this.salary = salary; } public double getSalary() { return salary; } public void setSalary(double salary) { this.salary = salary; } @Override public String say() { return super.say() + " salary=" + salary; } //特有的方法 public void teach() { System.out.println("老师" + getName() + "正在讲java课程"); }}
public class PloyArray { public static void main(String[] args) { Person[] persons = new Person[5]; persons[0] = new Person("jack", 20); persons[1] = new Student("jack", 18, 100); persons[2] = new Student("smith", 19, 30.1); persons[3] = new Teacher("scott", 30, 20000); persons[4] = new Teacher("king", 50, 25000); for (int i = 0; i < persons.length; i++) { // System.out.println(persons[i].say());// System.out.println(persons[i] instanceof Person); if (persons[i] instanceof Student) { ((Student)persons[i]).study(); } else if (persons[i] instanceof Teacher) { ((Teacher)persons[i]).teach(); } } }}//运行结果学生 jack正在学java学生 smith正在学java老师scott正在讲java课程老师king正在讲java课程
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2025年04月01日 03时49分13秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Linux RPM和yum命令的使用技巧
2019-03-04
写博客常用的字体颜色(待续)
2019-03-04
C++ throw、try、catch、noexcept
2019-03-04
vim之vim滚屏与跳转
2019-03-04
C指针之函数指针与typedef
2019-03-04
CentOS8 字体大小调整
2019-03-04
设计模式之组合模式
2019-03-04
设计模式之外观模式
2019-03-04
Linux 验证、数字证书、RPM包中文件的提取
2019-03-04
《Redis开发与运维》阅读笔记:键管理之单个键管理
2019-03-04
(恋上数据结构笔记):优先级队列(Priority Queue)
2019-03-04
(Python学习笔记):条件语句
2019-03-04
(Python学习笔记):字典
2019-03-04
(C++11/14/17学习笔记):并发基本概念及实现,进程、线程基本概念
2019-03-04
(C++11/14/17学习笔记):线程启动、结束,创建线程多法、join,detach
2019-03-04
(C++11/14/17学习笔记):创建多个线程、数据共享问题分析及案例
2019-03-04
(QT学习笔记):按钮组中的常用控件
2019-03-04
(音视频学习笔记):SDL-YUV显示-播放音频PCM
2019-03-04
leetcode 14 最长公共前缀
2019-03-04