首页 > 其他分享 >面向对象12:什么是多态?

面向对象12:什么是多态?

时间:2024-04-02 13:33:30浏览次数:17  
标签:12 s2 多态 面向对象 Student 子类 重写 方法

package com.oop.demo06;

public class Student extends Person{

    public void run(){
        System.out.println("son");
    }

    public void eat(){
        System.out.println("eat");
    }


}
/*
多态注意事项:
1.多态是方法的多态,属性没有多态
2.父类和子类,有联系   类型转换异常ClassCastException!(出现这个代表对象类型转换出现问题)
3.存在条件:继承关系,方法需要重写,父类引用指向子类对象! Father f1 = new Son();
   1.static 方法,属于类,它不属于实例
   2.final 常量;(放在常量池中无法修改)
   3.private方法;(私有的也无法重写)
 */
package com.oop;

import com.oop.demo05.A;
import com.oop.demo05.B;
import com.oop.demo06.Person;
import com.oop.demo06.Student;

/*
* 封装的意义
* 1.提高程序的安全性
* 2.隐藏代码的实现细节
* 3.统一接口
* 4.系统的可维护性增加了
* */
public class Application {
    public static void main(String[] args) {

        //一个对象的实际类型是确定的,但是可以指向的引用类型就不确定了
        //new Student();
        //new Person();

        //都是学生,但是同样表现出来有多种状态,这就叫多态
        //对象指向的引用类型是不确定的,
        //Student能调用的方法都是自己的或是继承父类的!
        Student s1 = new Student();
        //Person父类型,可以指向子类,但是不能调用子类独有的方法。
        Person s2 = new Student();//父类的引用指向子类的类型
        Object s3 = new Student();

        //★对象能执行哪些方法,主要看对象左边的类型,和右边关系不大!
        //如果只有person类中有run方法则S2执行person类中的run方法,如果student重写了run方法,则s1、s2都执行重写后的方法,输出son
        s2.run();//子类重写了父类的方法,执行子类的方法
        s1.run();

        //s2.eat();会报错,因为s2的类型是person类,person类中还没有eat方法,如果有的话,那子类没有重写方法就调用父类的,重写了方法就调用子类的
        //((Student) s2).eat();//这里是将s2类型强制转换成Student类型了
    }
}

 

标签:12,s2,多态,面向对象,Student,子类,重写,方法
From: https://www.cnblogs.com/sankouyitouju/p/18110378

相关文章

  • python项目练习——12.在线购物商城应用程序
    项目功能分析:这个项目可以让用户浏览商品、添加商品到购物车、进行结账等操作。这个项目涉及到数据库操作、用户认证、支付集成等方面的技术。代码示例:#models.pyfromdjango.dbimportmodelsfromdjango.contrib.auth.modelsimportUserclassProduct(models.Model)......
  • SGM61230同步降压转换器
    这份文件是SGMicroCorp的SGM61230同步降压转换器的产品数据手册。以下是文件的核心内容概要:概述:SGM61230是一款由SGMicroCorp生产的同步降压转换器,设计用于在宽输入电压范围内提供高电流输出。以下是对该产品的详细概述:1.**输入电压范围**:-设备能够在4.5V至......
  • GitHub上标星120k的Java进阶面试教程等!(建议收藏
    转发+关注,然后私信回复关键字“888”即可获得我精心整理的《Java开源项目合集》资料八、《JavaFamily》==============【互联网一线大厂面试+学习指南】进阶知识完全扫官。 部分目录:九、《interview_internal_reference》==================================2......
  • Java面试题-12Zookeeper
    1、ZK节点数据Zookeeper提供一个多层级的节点命名空间(节点称为znode)。与文件系统不同的是,这些节点都可以设置关联的数据,而文件系统中只有文件节点可以存放数据而目录节点不行。Zookeeper为了保证高吞吐和低延迟,在内存中维护了这个树状的目录结构,这种特性使得Zookeeper不能用......
  • 博客摘录「 linux应急响应」2024年3月12日
    ------***windoes***------方法宸极实验室—『杂项』一篇Windows应急响应的详细笔记-九州信泰的文章-知乎宸极实验室—『杂项』一篇Windows应急响应的详细笔记-知乎利用win+r后输入lusrmgr.msc查询系统是否存在多余的特权、隐藏账户。或者打开控制面板>用户账户......
  • 洛谷P3543 [POI2012] WYR-Leveling Ground
    题目描述给定\(n\)个数和\(a,b\)每次可以选择一段区间\(+a,-a,+b,或-b\),问最少操作几次能把它们都变成\(0\)。如果无解请输出\(-1\)。样例输入5231211-15分析对于区间修改是很麻烦的,为了简化复杂度,这里可以将数组转化为差分数组以降低难度,对于每一个数,我......
  • P4121
    二进制枚举每一个数是给它右侧的还是接收它右侧的,贪心的选择整倍数的,时间复杂度\(\mathcal{O}(2^nn)\)//Author:xiaruize#ifndefONLINE_JUDGEboolstart_of_memory_use;#endif#include<bits/stdc++.h>usingnamespacestd;#ifndefONLINE_JUDGEclock_tstart_clock=......
  • debian 12设置静态ip、dns
    1、设置静态ip查看网卡名称是ens33ipaddress编辑网卡配置文件vi/etc/network/interfaces在最后面添加下面内容其中ens33是上步中查询到的网卡名称address192.168.2.157是ip地址netmask255.255.255.0是ip地址的子网掩码gateway192.168.2.2是ip地址的网关......
  • 使用镜像安装cuda12.1版本pytorch
    1.添加通道condaconfig--addchannelshttps://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/condaconfig--addchannelscondaconfig--addchannelshttps://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/condaconfig--addchannelshttps://mirrors.bfs......
  • 12. 消色差单透镜
    导论:一个反射镜面可以消色差,但是也可以设计一个用来矫正一阶色差的折射/衍射混合组件。其技巧就是使用一个一面刻蚀着衍射表面的折射单透镜。单透镜上两面的曲率产生大部分光焦度。而弱衍射组件为玻璃色散提供足够的色散补偿。系统建模:首先输入系统特性参数如下:系统孔径为......