首页 > 编程语言 >java中的多态

java中的多态

时间:2024-04-12 09:23:45浏览次数:31  
标签:java 子类 void System 多态 Animal public out

Java中的多态

同种行为具有不同表现形式或形态的能力

意义:

  • 程序最终的状态只有在执行过程中才会被决定而非在编译期间决定
  • 提高了程序的灵活性和扩展性

实现的必要条件:

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

创建四个类

Animal类

public class Animal {
	public void run() {
		System.out.println("动物能动");
	}

	public void eat() {
		System.out.println("动物能吃");
	}
}

Cat类

public class Cat extends Animal{
	public void eat(){
		System.out.println("猫吃猫粮");
	}
    public void climb(){
		System.out.println("猫可以上树");
	}
}

Dog类

public class Dog extends Animal{
	public void eat(){
		System.out.println("猫吃猫粮");
	}
}

Test类(测试类)

public class Test {
	public static void main(String[] args) {
		Animal an1 = new Cat();
		an1.eat();
        //		an1.climb(); 代码报错,因为用父类的对象来接受子类的对象时,子类特有的方法不能用
        
	}
}
// 输出打印:猫吃猫粮

在上面的测试中,用父类来接受子类的对象时,该对象只能用父类有的方法,如果子类重写了该方法,就会调用子类的方法,而子类中特有的方法不能使用。

标签:java,子类,void,System,多态,Animal,public,out
From: https://www.cnblogs.com/ning23/p/18130448

相关文章

  • 狂神说Java Web学习笔记_Cookie
    会话用户打开一个浏览器,点击了很多链接,访问了很多web资源,关闭浏览器之后,这个过程可以称之为一次会话。有状态会话一个同学来过教室,大家看到了,下次再来教室的时候,我们会知道这个同学曾经来过,这个被称为有状态会话。一个网站如何证明你访问过?服务端给客户端一个信件,客户端下次......
  • Java基础学习 | 2024年4月11日
    变量1.类变量(静态变量):前面用static修饰,表示所有子类都共用同一个属性值,可以直接用类名来访问静态变量,也可以通过实例名来访问静态变量。即无论创建多少个类实例,静态变量在内存中只有一份拷贝,被所有实例共享。举例:点击查看代码publicclassMyClass{publicstaticintc......
  • JavaScript 迈入 AI 新纪元
    随着人工智能技术的不断进步,JavaScript也迎来了自己的AI时代。JS-Torch是一个全新的深度学习库,专为JavaScript设计,其语法习惯与广受欢迎的PyTorch框架高度相似。这个库提供了一整套深度学习工具,包括可追踪梯度的张量对象、多层网络结构以及自动微分功能。PyTorch,作为JS......
  • java中字符串替换的4种方法 replaceAll() 带正则表达式参数 str.replaceAll("[0-9]+
    java中字符串替换的4种方法replaceAll()带正则表达式参数str.replaceAll("[0-9]+","");目录前言一、String的replace()方法二、String的replaceAll()方法三、StringBuffer/StringBuilder的replace()方法四、Matcher的replaceAll()方法总结前言在日常开发中,我们对......
  • Java创建数组、赋值的四种方式,声明+创建+初始化 详解
    Java创建数组、赋值的四种方式,声明+创建+初始化详解@目录一、创建数组的四种方式二、详解三、数组存储的弊端一、创建数组的四种方式以int数据类型为例@TestpublicvoidtestNewArray(){//创建数组//法一int[]arr1=newint[]{1,2,3,4,5};System.ou......
  • Java中Array.sort()的几种用法简明教程 (需要初始化要排序的对象)对 一个数组的所有元素
    Java中Array.sort()的几种用法简明教程(需要初始化要排序的对象)对一个数组的所有元素进行排序,并且是按从小到大的顺序Java中Array.sort()的几种用法简明教程(需要初始化要排序的对象)======================================================1、Arrays.sort(int[]a)......
  • java中工具类检测ip和端口能否正常连接
    话不多说,直接上干货...publicclassNetUtils{privatestaticfinalLoggerlog=LoggerFactory.getLogger(NetUtils.class);/***特别注意:ping不通,并不代表telnet或者socket就不能正常连接*原因:协议不同*-ping是基于ICMP协议,ping......
  • UJCMS 9.1.0 发布,国内开源 java cms
    许可协议从GPL-2改为Apache-2.0,更宽松的协议,方便用户将系统集成到自身的应用中。修复了已知bug,系统更加稳定。升级日志(9.1.0)修复前台全文搜索没有结果web.xmlsession过期时间从30分钟改成25分钟,部分漏洞扫描软件会将session过期时间大于等于30分钟判定为漏洞修复文章管理一......
  • Java开头(开发环境配置及IDE的安装)
    Java安装开发环境卸载JDK删除Java的安装目录删除环境变量JAVA_HOME删除path下关于Java的目录检验(cmd中),输入java-version安装JDKOralce官网下载并安装记住安装的路径配置环境变量(系统变量中新建变量JAVA_HOME,并设定变量值为java文件的根目录)配置path变量(添加%JAVA_......
  • java面向对象有哪些特征
    Java面向对象编程(OOP)的核心特征通常包括封装性、继承性、多态性和抽象性。具体如下:封装性:封装是指将对象的属性(数据)和行为(方法)绑定在一起,并对对象的实现细节进行隐藏,只暴露出必要的接口给外部使用。这样做的目的是为了保护对象的内部状态,防止外部随意访问和修改。继承性:继承允......