【精选】java初识多态 子类继承父类

复制代码
🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!

目录

前言:

封装

多态的形式

多态的使用场景

代码


前言:

封装

  • 对象代表什么,就得封装对应的数据,并提供数据对应的行为

多态的形式

多态是继 封装、继承之后,面向对象的第三大特性。

多态是出现在继承或者实现关系中的。

多态体现的格式:

cs 复制代码
父类类型 变量名 = new 子类/实现类构造器;
变量名.方法名();

多态的前提:

  • 有继承关系
  • 有父类引用指向子类对象
  • 有方法重写

多态的使用场景

代码

父类:person

java 复制代码
package demon6;

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 void show(){
        System.out.println(name + "," + age);
    }
}

子类:student

java 复制代码
package demon6;

public class student extends person{
    @Override
    public void show() {
        System.out.println("学生的信息为:" + getName() + "," + getAge());
    }
}

子类:teacher

java 复制代码
package demon6;

public class teacher extends person{
    @Override
    public void show() {
        System.out.println("老师的信息为:" + getName() + "," + getAge());
    }
}

子类:administrator

java 复制代码
package demon6;

public class administrator extends person{
    @Override
    public void show() {
        System.out.println("管理员的信息为:" + getName() + "," + getAge());
    }
}

测试类:test

java 复制代码
package demon6;

public class test {
    public static void main(String[] args) {
        //创建三个对象,并调用register方法
        student s = new student();
        s.setName("张三");
        s.setAge(23);

        teacher t = new teacher();
        t.setName("王宝强");
        t.setAge(50);

        administrator a = new administrator();
        a.setName("admin");
        a.setAge(30);

        register(s);
        register(t);
        register(a);

    }
    //这个方法既可以接收学生,又可以接收老师和管理员
    //只能把参数写成这三个类型的父类
    public static void register(person p){
        p.show();
    }
}
相关推荐
忆挽篱笙歌5 分钟前
进程控制管理
linux·运维·服务器
Escalating_xu14 分钟前
【Linux 网络编程】connect 的断线重连:用状态机写一个能恢复连接的 TCP 客户端
linux·网络·tcp/ip
SL_staff1 小时前
4G设备掉线三层归因指南:SIM卡、模组、JVS-IOT网关配置精准锁定
java·物联网·产品
NetX行者1 小时前
四语言 Hello World 背后:编译模型与运行时对比
开发语言
2401_868534782 小时前
局域网络中信息安全方案设计及攻击防范技术(制造企业园区网)
服务器·网络
Wang's Blog2 小时前
Java 项目实战: 交友项目 - 黑名单:取消黑名单
java·windows·交友
愤怒火龙果2 小时前
AI攻防 AIRT03-RAG Exploitation & Vector Database Attacks
数据库·人工智能·网络安全
Pin_Qing2 小时前
账单没超,请求先被拒了
大数据·开发语言·人工智能
2601_962885722 小时前
如何用 Python 计算 VaR 和 CVaR(在险价值)?
开发语言·python
杨杨杨大侠2 小时前
DeepSeek Harness:连 Agent Loop 都能替换的插件架构
java·人工智能·agent