【精选】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();
    }
}
相关推荐
忆挽篱笙歌3 小时前
通信连接,匿名管道
linux·服务器·网络
无足鸟ICT6 小时前
【RHCA+】安装Tuned
linux·服务器·centos
starzy19907 小时前
深入理解Scala隐式类:扩展方法机制
开发语言·人工智能·scala
Pniubi7 小时前
怎么排查慢SQL,怎么解决?
java·数据库·sql
M--Y7 小时前
LangGraph 工作流模式
开发语言·javascript·python·langchain·大模型·llm·langgraph
薛之谦_8 小时前
Java 全栈知识体系:从 IDEA 高效开发到 JVM、并发与 Stream 实战
java·jvm·intellij-idea
九英里路8 小时前
protobuf快速上手
网络·c++·中间件·json·谷歌·序列化·protobuf
吴可可1239 小时前
WScript Shell操作注册表详解
开发语言
66IT669 小时前
Nessus Professional 10.12.6(macOS, Linux, Windows)新功能+ 安装教程
网络安全·渗透测试·漏洞扫描·nessus
纪念 2299 小时前
C++ 算法基础 (差分)
开发语言·c++·算法