首页 > 编程语言 >Java 多态

Java 多态

时间:2023-07-29 20:24:13浏览次数:55  
标签:Java 对象 子类 多态 编译 类型 运行

Java 多态

1. 多态

方法或对象具有多种形态。是面向对象的三大特征之一,多态是建立在封装、继承基础之上的

2. 多态的实现:

方法的重载中,使用不同的形参调用方法体现出了多态

方法的重写中,使用父类或子类的对象调用方法体现出了多态

对象的多态:

对象的编译类型与运行类型可以不一样

编译类型与运行类型:编译类型可以看定义时 = 号左边的类型,运行类型则是= 号右边的类型。

编译类型在定义的时候就确认了不能改变,而运行类型的改变体现出了对象的多态

3. 向上转型、向下转型

向上转型: 父类的引用指向子类,此时编译类型是父类,运行类型是子类,在编译阶段只能调用编译类型的成员,如果使用了子类的成员会提示语法错误。最终运行时,先从运行类型开始找,依次向上寻找。

向下转型:

语法:子类类型 引用名 = (子类类型) 父类引用。

把编译类型的引用强制往下转型,在转型的时候需要特别注意编译类型要与原来的运行类型相一致。向下转型并不是改变了这个对象,而是更改了他的引用。

4. instanceof 运算符

语法:对象名 instanceof 对象类型 真返回 true ,假返回 false

判断其运行类型是否是此类型或者是其类型的子类

5. 动态绑定机制

调用对象的方法时候,该方法会和对象的运行类型绑定。

调用属性的时候,则没有绑定,即哪里声明哪里使用。

标签:Java,对象,子类,多态,编译,类型,运行
From: https://www.cnblogs.com/Sean-y/p/17590413.html

相关文章

  • 10道Java基础面试题
    以下是Java基础面试题,相信大家都会有种及眼熟又陌生的感觉、看过可能在短暂的面试后又马上忘记了。JavaPub在这里整理这些容易忘记的重点知识及解答,建议收藏,经常温习查阅。看看这些面试题你会几道@[toc]1.instanceof关键字的作用instanceof是Java的保留关键字。它的作用是测......
  • 交换变量a,b的值(java)
    方法1:引入中间变量inta=10;intb=20;inttemp=a;a=b;b=temp;System.out.println("a="+a+",b="+b);//a=20,b=10方法2:利用赋值符号=inta=10;intb=20;a=b+(a-(b=a));System.out.println("a="+a+&qu......
  • Java之Stream流的常用API
    Java之Stream流的常用APIStream流常见中间方法名称说明Stream<T>filter(Predicate<?superT>predicate)用于对流中的数据进行过滤Stream<T>limit(longmaxSize)获取前几个元素Stream<T>skip(longn)跳过前几个元素Stream<T>distinct()去除流中重复......
  • 《面试1v1》JavaNIO
    我是javapub,一名Markdown程序员从......
  • Java学习-3.流程控制语句
    一、输入和输出println是printline的缩写,表示输出并换行。因此,如果输出后不想换行,可以用print():System.out.print("C.");System.out.println();System.out.println("END");Java还提供了格式化输出的功能。为什么要格式化输出?因为计算机表示的数据不一定适合人来阅读:public......
  • Java学习2
    java学习2继续学习了一些基础的语法内容知识数据类型扩展整数进制标识inta=010; //8八进制0开头intb=0x10; //16十六进制0x开头intc=10; //10十进制0-9A-F浮点数进制标识floatA=1.0;floatB=1.0; 如果进行比较A与B大小是不同的,因为fl......
  • Java学习-2.简介、关键字、标识符、变量、数据类型、运算符
    一、Java简介Java最早是由SUN公司(已被Oracle收购)的詹姆斯·高斯林(高司令,人称Java之父)在上个世纪90年代初开发的一种编程语言,最初被命名为Oak,目标是针对小型家电设备的嵌入式应用,结果市场没啥反响。谁料到互联网的崛起,让Oak重新焕发了生机,于是SUN公司改造了Oak,在1995年以Java的名......
  • Java面试题 P14:java面试简历如何写
    1、简历整体结构一份完整的简历应该包括如下几个部分:1、基本信息2、教育背景3、求职意向4、工作经历5、执业技能6、项目经历7、个人优势8、个人荣誉2、执业技能:   3、项目经历: ......
  • JavaWeb之Servlet入门版教务系统(一)
    本次要分享的内容是使用Servlet技术实现最简单的从页面到后台的一个简化版的教务系统功能模块。在讲述系统之前,首先需要了解一下JavaWeb中的MVC分层重要思想,请看下图:MVC分层思想把软件系统分为View(视图层),Controller(控制层),Model(模型层),通过这三层结构。让页面请求必须通过控制......
  • 基于JAVA的佳乐福购物商城
    本系统主要是提供给大一个购买商品的平台和管理商品的佳乐福购物商城,通过价格优势吸引众多消费者来购买,实现正常运营。本文主要是采用JAVA语言、jsp技术、Sqlserver数据库、tomcat服务器作为开发平台,系统采用B/S结构进行开发,完成一个佳乐福购物商城。目标是实现一个以销售为中心的......