【免费Java系列】大家好 ,给大家出一些今天学习内容的案例点赞收藏关注,持续更新作品 !

 

 多态

Java中的多态是指同一个方法在不同的对象上有不同的行为:

案例一

以下有四个类 : 动物类与狗、猫类  Test测试类

// 动物类
class Animal {public void sound() {System.out.println("动物发出声音");}
}// 狗类
class Dog extends Animal {@Overridepublic void sound() {System.out.println("狗发出汪汪的声音");}
}// 猫类
class Cat extends Animal {@Overridepublic void sound() {System.out.println("猫发出喵喵的声音");}
}// 测试类
public class PolymorphismExample {public static void main(String[] args) {Animal animal1 = new Dog(); // 父类引用指向子类对象Animal animal2 = new Cat(); // 父类引用指向子类对象animal1.sound(); // 调用的是子类Dog的sound()方法animal2.sound(); // 调用的是子类Cat的sound()方法}
}

以上程序会输出:
狗发出汪汪的声音
猫发出喵喵的声音



案例二

以下有四个类 : 车类与宝马、奔驰子类  Test测试类

// 车类
class Car {public void drive() {System.out.println("开车");}
}// 宝马类
class BMW extends Car {@Overridepublic void drive() {System.out.println("开宝马");}
}// 奔驰类
class Benz extends Car {@Overridepublic void drive() {System.out.println("开奔驰");}
}// 测试类
public class PolymorphismExample {public static void main(String[] args) {Car car1 = new BMW(); // 父类引用指向子类对象Car car2 = new Benz(); // 父类引用指向子类对象car1.drive(); // 调用的是子类BMW的drive()方法car2.drive(); // 调用的是子类Benz的drive()方法}
}

以上程序会输出:

开宝马
开奔驰


案例三 

abstract class Animal {public abstract void move();
}class Cat extends Animal {@Overridepublic void move() {System.out.println("Cat is walking");}
}class Dog extends Animal {@Overridepublic void move() {System.out.println("Dog is running");}
}class Bird extends Animal {@Overridepublic void move() {System.out.println("Bird is flying");}
}public class PolymorphismExample {public static void main(String[] args) {Animal cat = new Cat();Animal dog = new Dog();Animal bird = new Bird();cat.move();  // output: Cat is walkingdog.move();  // output: Dog is runningbird.move(); // output: Bird is flying}
}

抽象类

抽象类是指不能实例化的类,只能作为其他类的基类来使用。下面是一些Java抽象类的案例以及答案:

案例一

Shape(形状)抽象类:

abstract class Shape {public abstract double calculateArea();public abstract double calculatePerimeter();
}class Rectangle extends Shape {private double length;private double width;public Rectangle(double length, double width) {this.length = length;this.width = width;}public double calculateArea() {return length * width;}public double calculatePerimeter() {return 2 * (length + width);}
}class Circle extends Shape {private double radius;public Circle(double radius) {this.radius = radius;}public double calculateArea() {return Math.PI * radius * radius;}public double calculatePerimeter() {return 2 * Math.PI * radius;}
}public class Main {public static void main(String[] args) {Shape rectangle = new Rectangle(5, 4);System.out.println("Rectangle Area: " + rectangle.calculateArea());System.out.println("Rectangle Perimeter: " + rectangle.calculatePerimeter());Shape circle = new Circle(3);System.out.println("Circle Area: " + circle.calculateArea());System.out.println("Circle Perimeter: " + circle.calculatePerimeter());}
}

以上程序输出结果为:

Rectangle Area: 20.0
Rectangle Perimeter: 18.0
Circle Area: 28.274333882308138
Circle Perimeter: 18.84955592153876


 案例二

Animal(动物)抽象类:
 

abstract class Animal {private String name;public Animal(String name) {this.name = name;}public abstract void sound();public void eat() {System.out.println(name + " is eating.");}
}class Dog extends Animal {public Dog(String name) {super(name);}public void sound() {System.out.println("Dog barks.");}
}class Cat extends Animal {public Cat(String name) {super(name);}public void sound() {System.out.println("Cat meows.");}
}public class Main {public static void main(String[] args) {Animal dog = new Dog("Tom");dog.sound();dog.eat();Animal cat = new Cat("Jerry");cat.sound();cat.eat();}
}

输出结果:

Dog barks.
Tom is eating.
Cat meows.
Jerry is eating.


 案例三

一个抽象类 `Animal` 和两个继承类 `Dog` 和 `Cat` 的用法。
 

abstract class Animal {private String name;public Animal(String name) {this.name = name;}public String getName() {return name;}public abstract void makeSound();
}class Dog extends Animal {public Dog(String name) {super(name);}public void makeSound() {System.out.println(getName() + " is barking.");}
}class Cat extends Animal {public Cat(String name) {super(name);}public void makeSound() {System.out.println(getName() + " is meowing.");}
}public class Main {public static void main(String[] args) {Animal dog = new Dog("Tom");dog.makeSound();Animal cat = new Cat("Jerry");cat.makeSound();}
}

输出结果:
Tom is barking.
Jerry is meowing.


接口

接口定义了一系列方法的签名(方法名、参数列表和返回类型),而具体的实现则由实现该接口的类来完成

案例一

一个接口 `Drawable` 和两个实现类 `Circle` 和 `Rectangle` 的用法。

interface Drawable {void draw();
}class Circle implements Drawable {public void draw() {System.out.println("Drawing a circle.");}
}class Rectangle implements Drawable {public void draw() {System.out.println("Drawing a rectangle.");}
}public class Main {public static void main(String[] args) {Drawable circle = new Circle();circle.draw();Drawable rectangle = new Rectangle();rectangle.draw();}
}

输出结果:

Drawing a circle.
Drawing a rectangle.


案例二

 定义一个"动物"的接口,具有"吃"和"睡"两个方法。具体的动物类可以根据需要来实现这个接口,并实现自己独特的行为。

// 定义动物接口
interface Animal {void eat();void sleep();
}// 实现动物接口的猫类
class Cat implements Animal {@Overridepublic void eat() {System.out.println("猫正在吃饭");}@Overridepublic void sleep() {System.out.println("猫正在睡觉");}
}// 实现动物接口的狗类
class Dog implements Animal {@Overridepublic void eat() {System.out.println("狗正在吃骨头");}@Overridepublic void sleep() {System.out.println("狗正在打盹");}
}// 测试类
public class Main {public static void main(String[] args) {Animal cat = new Cat();Animal dog = new Dog();cat.eat();  // 输出:猫正在吃饭cat.sleep();  // 输出:猫正在睡觉dog.eat();  // 输出:狗正在吃骨头dog.sleep();  // 输出:狗正在打盹}
}

好,以上内容就是今天学习内容的案例 !!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1409934.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Go实现树莓派按键识别

环境 在Windows要注意交叉编译设置, 这个库目前没有使用C, 所以不需要配置GCC、G, 配置如下 GOOSlinux GOARCHarm 代码 package mainimport ("fmt""github.com/stianeikeland/go-rpio/v4""os""time" )var (…

C语言-整体内容简单的认识

目录 一、数据类型的介绍二、数据的变量和常量三、变量的作用域和生命周期四、字符串五、转义字符六、操作符六、常见的关键字6.1 关键字static 七、内存分配八、结构体九、指针 一、数据类型的介绍 sizeof是一个操作符,是计算机类型/变量所占内存空间的大小   sc…

实验三 .Java 语言继承和多态应用练习 (课内实验)

一、实验目的 本次实验的主要目的是通过查看程序的运行结果及实际编写程序,练习使用 Java 语言的继承特性。 二、实验要求 1. 认真阅读实验内容,完成实验内容所设的题目 2. 能够应用多种编辑环境编写 JAVA 语言源程序 3. 认真体会多态与继承的作用…

【项目构建】04:动态库与静态库制作

OVERVIEW 1.编译动态链接库(1)编译动态库(2)链接动态库(3)运行时使用动态库 2.编译静态链接库(1)编译静态库(2)链接静态库(3)运行时使…

【数据结构-之八大排序(下),冒泡排序,快速排序,挖坑法,归并排序】

🌈个人主页:努力学编程’ ⛅个人推荐:基于java提供的ArrayList实现的扑克牌游戏 |C贪吃蛇详解 ⚡学好数据结构,刷题刻不容缓:点击一起刷题 🌙心灵鸡汤:总有人要赢,为什么不能是我呢 …

信息管理与信息系统就业方向及前景分析

信息管理与信息系统(IMIS)专业的就业方向十分广泛,包含计算机方向、企业信息化管理、数据处理和数据分析等,随着大数据、云计算、人工智能、物联网等技术的兴起,对能够处理复杂信息系统的专业人才需求激增,信息管理与信息系统就业…

动态数据结构中的表扩张性:摊还分析、伪代码与C语言实现

动态数据结构中的表扩张性:摊还分析、伪代码与C语言实现 引言表扩张性的概念摊还分析在表扩张性中的应用伪代码示例:TABLE-INSERT操作C语言实现结论 引言 在处理数据结构时,尤其是表(或数组),我们经常面临…

第一课 自动驾驶概述

1. contents 2. 什么是无人驾驶/自动驾驶 3 智慧出行大智慧 4. 无人驾驶的发展历程

Javascript:Web APIs(一)

Javascript基础(一) Javascript基础(二) Javascript基础(三) Javascript基础已经结束,接下来我们将进入到整个Web API学习中,在此,我们将学习DOM操作,基本的…

免费、中文版的 Postman 替代工具,提高工作效率

为啥不用 Postman Postman 是挺好用的,但是人家就是死活不支持中文啊。。。这也导致了上手门槛的增高,劝退了很多人~ 接下来推荐几款可以替代 Postman 的国产 API 工具。 怎么替代? 先来说说国内有哪些API工具: ApifoxEolink…

图像预处理工具_CogImageFileTool

CogImageFileTool工具可以用来将单张图片或idb格式的图片数据库读入内存。也可使用CoglmageFileTool工具将图片插入到.idb数据库里。 添加工具 参数介绍 文件名 写入模式 读取模式 删除

暗区突围端游海外版测试怎么预约 暗区突围预约教程的图文教程分享

暗区突围端游海外版测试怎么预约 暗区突围预约教程的图文教程分享 《暗区突围》一款大逃杀类的fps类型游戏,游戏的核心玩法是撤离暗区并收集物资,玩家可根据不同策略选择装备,并在战局中搜集信息,最终逃离暗区赢得游戏&#xff0…

LLM应用:AI代码助手插件

vscode code助手在线插件 1)国内 codegeex (清华) https://codegeex.cn/ iflycode(讯飞) http://iflycode.xfyun.cn/ comate(百度) https://comate.baidu.com/zh/download lingma&#xff…

咸鱼之王攻略:2024强阵容搭配

欢迎来到《咸鱼之王》的世界!作为一款集合了策略与角色扮演元素的游戏,本攻略将为您提供一系列关于游戏阵容搭配和咸将选择的建议,帮助您在游戏中更好地获得胜利。 1.了解游戏阵营 《咸鱼之王》分为四个阵营:魏、蜀、吴、群。每个…

IOS上线操作

1、拥有苹果开发者账号 2、配置证书,进入苹果开发者官网(https://developer.apple.com/) 3、点击账户(account),然后创建一个唯一的标识符 4、点击"Identifiers",然后点击"&qu…

是机遇?是未来?拥抱 AI Agent ,拥抱 AI 2.0时代~

✍️ 作者:哈哥撩编程(视频号同名) 博客专家全国博客之星第四名超级个体COC上海社区主理人特约讲师谷歌亚马逊演讲嘉宾科技博主极星会首批签约作者 🏆 推荐专栏: 🏅 程序员:职场关键角色通识宝…

区块链 | IPFS 工作原理入门

🦊原文:What is the InterPlanetary File System (IPFS), and how does it work? 🦊写在前面:本文属于搬运博客,自己留存学习。 1 去中心化互联网 尽管万维网是一个全球性的网络,但在数据存储方面&#…

模块六:模拟——1419.数青蛙

文章目录 题目描述算法原理解法(模拟 分情况讨论) 代码实现 题目描述 题目链接:1419.数青蛙 算法原理 解法(模拟 分情况讨论) 模拟⻘蛙的叫声。 当遇到 ‘r’ ‘o’ ‘a’ ‘k’ 这四个字符的时候,我…

ctfshow web入门 sql注入 web201--web208

web201 先扫描先 python .\sqlmap.py -u "http://4863661d-2371-4812-ae62-128fadbdc0a4.challenge.ctf.show/api/?id" --user-agentsqlmap 加头 python .\sqlmap.py -u "http://4863661d-2371-4812-ae62-128fadbdc0a4.challenge.ctf.show/api/?id" --u…

考研数据结构chap8排序

目录 一、概念 1.评价 (1)稳定性 (2)Tn、Sn 2.分类 (1)内部排序 (2)外部排序 二、插入排序 1.直接插入排序(InsertSort) (1)思路 (2&am…