首页 > 其他分享 >多态机制练习

多态机制练习

时间:2023-01-05 22:24:07浏览次数:35  
标签:name age 练习 多态 persons score 机制 public String

package com.hspedu.encap;

//测试类
public class test {
    public static void main(String[] args) {
        Person[] persons = new Person[5];  //Person 类
        //编译类型         运行类型
        persons[0] = new Person("laLa",17); 
        persons[1] = new Student("koKo",17,77);
        persons[2] = new Student("qiQi",19,97);
        persons[3] = new Teacher("qinQin",39,1000);
        persons[4] = new Teacher("kaKa",29,1000);

        for (int i = 0; i < persons.length; i++) {
            System.out.println(persons[i].say());  //遍历数组 将每个方法输出
            //如果 perosns[i] 的运行类型 是 Student 
            if (persons[i] instanceof Student) { 
                Student student = (Student)persons[i];
                student.study();  //则调用这个方法
                //如果 perosns[i] 的运行类型 是 Teacher 
            } else if (persons[i] instanceof Teacher) {
                Teacher teacher = (Teacher)persons[i];
                teacher.teach();  //则调用这个方法
                //如果 perosns[i] 则什么都不发生
            } else if (persons[i] instanceof Person){ 

            } else {
                System.out.println("写错了,宝儿");
            }
        }
    }
}
package com.hspedu.encap;

//父类 公共类
public class Person {
    //共有属性
    private String name;
    private int age;

    //构造器
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    //get set方法
    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 + " 年龄:" + age;
    }
}
package com.hspedu.encap;

//学生类
public class Student extends Person{
    //子类独有的属性
  private double score;

  //构造器
    public Student(String name, int age, double score) {
        super(name, age);
        this.score = score;
    }

    //get set 方法
    public double getScore() {
        return score;
    }

    public void setScore(double score) {
        this.score = score;
    }

    //学生类独有的方法
    @Override
    public String say() {
        return " 学生:" + super.say() + " 成绩:" + score;
    }

    //学生类单独调用的方法
    public void study() {
        System.out.println("学生" + getName() + "在学习");
    }
}
package com.hspedu.encap;

//老师类
public class Teacher extends Person{
    //老师类独有的属性
    private double salary;

    //构造器
    public Teacher(String name, int age, double salary) {
        super(name, age);
        this.salary = salary;
    }

    //get set 方法
    public double getSalary() {
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }

    //老师类独有的方法
    @Override
    public String say() {
        return " 老师: " + super.say() + " 薪水: " + salary;
    }

    //老师类单独调用的方法
    public void teach() {
        System.out.println(" 老师: " + getName() + " 在教课 ");
    }
}

 

标签:name,age,练习,多态,persons,score,机制,public,String
From: https://www.cnblogs.com/shuqiqi/p/17028978.html

相关文章

  • c++算法练习day01【2022年蓝桥杯省赛B组题目】每天做一点、、、
    这个练习目前来说就比较宽松,打算在寒假(基本也就是这一个月每天刷几道题吧)题目一:小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天做a道题目,周六和周......
  • 天梯赛练习题L2(021-025)
    L2-021点赞狂魔如果有并列,则输出标签出现次数平均值最小的那个#include<bits/stdc++.h>usingnamespacestd;typedeflonglongLL;typedefpair<LL,LL>PII;const......
  • 在线客服系统的源码中Golang Gin框架实现IP白名单机制
    我的客服系统有一些接口是专门给内部调用的,只允许其他内部系统来调用,不允许随意访问,可以使用IP白名单机制使用Gin框架实现IP白名单机制可以使用中间件的方式实现。你......
  • 以修改注册表的方式避免ACK确认机制带来的延时现象
    TCP本身属面向链接的通讯协议。通讯双方的每一个收发动作,需要以通讯链路正常为前提。因此TCP协议内部提供了默认的ACK验证机制。假定A、B之间存在一条TCP通讯链路,某一时刻A......
  • Day 06 模块加载机制
    模块加载机制一、优先从缓存中加载模块在第一次加载后会被缓存,多次调用require()不会导致模块的代码被执行多次不论内置模块、自定义模块、第三方模块都会从缓存中加载......
  • 多态练习
    packagecom.hspedu.encap;//测试类publicclasstest{publicstaticvoidmain(String[]args){Subs=newSub();System.out.println(s.co......
  • Java反射机制详解
     时间:2022/11/03 一.引出在学习反射的时候,大家可能会纠结反射技术有什么作用,下面我们通过这里需求来说明反射是如何解决现有技术不能解决的问题的:根据配置文件re......
  • C++多态
    一、多态分类分为:静态多态  --> 函数重载和运算符重载      动态多态 ---> 派生类和虚函数实现运行时多态父类中同名函数定义虚函数 --> 子类......
  • 异常机制
    异常机制什么是异常异常是指程序运行中出现的不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等异常发生在程序运行期间,它影响了正常的程序执行流程异常的三......
  • 1.3练习日
    #define_CRT_SECURE_NO_WARNINGS1//如果一个点(x,y)(x,y)的两维坐标都是整数,即x{Z}x∈Z且yn\m{Z}y∈Z,则称这个点为一个格点。////如果一个点(x,y)(x,......