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课程
上一篇:java ==和equals
下一篇:java 多态类型转换

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2025年04月01日 03时49分13秒