Polymorphism、Abstract Class、Extends,面向对象特性与面向对象的高级知识部分

(1)定义一个抽象类Weapon,该抽象类有两个抽象方法attack(),move() 这两个方法分别表示武器的攻击方式和移动方式。 (2)定义3个类:Tank,Fl 代码 /*第一题: (1)定义一个抽象类Weapon,该抽象类有两个抽象方法attack(),move() 这两个方法分别表示武器的攻击方式和移动方式。 (2)定义3个类:Tank,Flighter,WarShip都继承自Weapon, 分别用不同的方式实现Weapon类中的抽象方法。 编写测试程序main方法,创建多个不同武器的实例。并分别调用attack()和move()方法。 能用多态尽量使用多态。*/ 阅读详情
package cn.csdn.abstracts;

//这个类用来测试抽象类的用法及其特点
public class Test3_Abstract {
	public static void main(String[] args) {
		//创建子类对象,测试使用类
		//The value of the local variable a/a2/a3 is not used
		Advance a = new Advance();
		a.eat();
		a.sleep();
		
//		//创建父类对象测试,普通父类
//		Advances a2 = new Advances();
//		a2.eat();
//		a2.sleep();
		
		//创建多态对象测试
		//编译看左边,执行看右边:调用父类里的成员,执行子类里经过覆写的方法体
		//创建父类对象,通过实例化子类对象的向上转型,抽象类/特殊类
		Advances a3 = new Advance();
		a3.eat();
		a3.sleep();
		
		/**Advance.eat();
		  
		   Cannot make a static reference to the non-static method eat() from the type Advance
		        从这句话你能看出来什么,普通类,或者只要它是一个类,那以这个类调用的方式,是静态的。或者类本身,不管它是什么类,是静态的。
           static修饰,随类的加载而加载而存在,然而,非static修饰,需先通过创建实例化对象,才能分配到内存空间,才能存在,才能被
                     实质性地以这个内存空间(其地址值)进行调用。*/
	}
}

//把共性功能向上提取,形成父类
abstract class Advances{
	/**	先不做程序设计:   抽象类      ==  程序设计(的结果)  */
	//抽象类的演化过程:
	abstract public void eat();
	
	public abstract void sleep();
}

//创建一个普通类,关键字class,强制继承父类,拥有父类的所有功能,耦合性太强,关键字extends
class Advance extends Advances{
	//当需要修改父类的原有功能,发生重写
	public void eat() {
		System.out.println("自己的生活,只有自己知道");
	}
	
	public void sleep() {
		System.out.println("即使睡不着,也淡然着,因为我的身体告诉我此时不需要睡眠");
	}
}

//创建一个普通类,关键字class
class Advance2{
	/**	先不做程序设计:   抽象类      ==  程序设计(的结果)  */
	public void eat() {
		System.out.println("每天都要吃得好好的,饱饱的");
	}
	
	public void sleep() {
		System.out.println("每天都要早睡早起,精神才好,体力才能充沛");
	}
}

//创建一个普通类,关键字class
class Advance3{
	/**	先不做程序设计:   抽象类      ==  程序设计(的结果)  */
	public void eat() {
		System.out.println("每天都要吃得好好的");
	}
	
	public void sleep() {
		System.out.println("每天都要早睡早起");
	}
}
java接口(interface)、抽象类(abstract class)、继承(extends)相关知识解析 一、什么是接口 1.接口内涵以及和抽象类的区别 (1) 接口的含义 Java中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。 (2) 比抽象类更加纯粹,更加抽象 abstractclass和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这 阅读详情

相关推荐

Java面向对象三大特性:封装、继承、多态实战解析

面向对象编程(OOP)是Java语言的核心范式,其中封装、继承和多态构成了其三大基本特性。封装通过隐藏内部实现细节保护数据完整性,继承实现代码复用和层次化设计,多态则提供了运行时动态绑定的能力。这些特性在Java企业级开发中广泛应用,如Spring框架利用封装管理依赖注入,Hibernate通过继承策略实现ORM映射,设计模式中的策略模式则充分展现了多态的优势。理解这些特性的底层原理和最佳实践,对于编写可维护、可扩展的Java代码至关重要。本文通过电商系统、金融交易等实际案例,深入剖析三大特性在工程实践中的

weixin_33716154的博客 446

继承extends与 抽象类 abstract

继承的父子成员特点子类继承父类:  1:子类可以访问父类的非私有成员  2:可以在子类中添加子类特有成员  继承的作用 1)继承可以提供代码的复用性:父类中的一个方法,所有的子类的都用 2)提供了程序的可扩展性1:Java支持单继承  a:一个子类只能有一个父类(一个儿子只能有一个爹)  b:一个父类可以有多个子类(一个爹可以有多个儿子)  c:任何一个类如果没有指定父类,则他的父类默认就是Obj...

GetNewPerson的博客 5375

Java面向对象三大特性深度解析与实战应用

面向对象编程(OOP)是软件开发的核心范式,其三大特性封装、继承、多态构成了现代编程语言的基石。封装通过隐藏实现细节保护数据完整性,继承实现代码复用和层次化设计,多态则提供了运行时灵活性。这些特性在Java语言中得到了完美体现,尤其在企业级应用开发中,合理运用OOP特性能显著提升代码的可维护性和扩展性。以电商系统为例,封装业务规则可降低模块耦合度,策略模式实现的多态支付方案支持快速接入新渠道,而遵循LSP原则的继承体系则保障了系统的稳定性。SOLID原则与设计模式的结合,更是将面向对象的优势发挥到极致,为构

weixin_30500473的博客 455

Java基础---abstract class、interface 、extends、implements

在Java语言中,abstract class 和interface 是支持抽象类定义的两种机制。 正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。 abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换, 因此很多开发者在进行抽象类定义时对于abstract class和interface的选择显得比较随意。 abstract class 和 interface 在Java语言中都是用来进行抽象类定义的 1.abstract clas

hukehukehukehuke的博客 2082

面向对象编程核心概念与实践指南

面向对象编程(OOP)是软件开发的基础范式,通过类与对象实现代码组织与复用。其核心原理包括封装、继承和多态三大特性,能够有效提升代码的可维护性和扩展性。在工程实践中,OOP常与设计模式结合使用,如工厂模式管理对象创建,策略模式实现算法替换。Python和Java等主流语言都提供了完善的OOP支持,包括类定义、接口实现等特性。随着技术发展,现代OOP正与函数式编程、响应式编程等范式融合,形成更强大的编程模型。掌握OOP思想对理解设计模式、领域驱动设计等高级主题至关重要。

weixin_33806300的博客 411

Java面向对象编程核心:从类与对象到集合框架的实践指南

面向对象编程(OOP)是一种以对象为核心的软件开发范式,其核心思想是通过封装、继承和多态来模拟现实世界。在Java语言中,OOP不仅是语法特性,更是构建模块化、可复用和易维护软件系统的基石。封装通过private修饰符保护数据,继承实现了代码复用,而多态则提供了接口统一和运行时灵活性。这些特性共同支撑了大型软件项目的开发,例如在企业级应用、安卓开发中广泛使用。本文聚焦Java面向对象的核心实践,通过实验解析类与对象、继承多态、抽象类接口、异常处理及集合框架等关键概念,帮助开发者从理论到实践掌握Java OO

weixin_30673611的博客 327

Abstract(抽象) implement和extend

1.Abstract(抽象)可以修饰类、方法 如果将一个类设置为abstract,则此类必须被继承使用。此类不可生成对象,必须被继承使用。 Abstract可以将子类的共性最大限度的抽取出来,放在父类中,以提高程序的简洁性。 Abstract虽然不能生成对象,但是可以声明,作为编译时类型,但不能作为运行时类型。 Final和abstract永远不会同时出现。 当abstract用于修饰方法时,此

libeyond_的专栏 8619

5G时代必知:LDPC与Polar码实战解析(附MATLAB仿真代码)

本文深入解析5G时代核心信道编码技术LDPC码与Polar码的原理差异及性能表现,通过MATLAB仿真代码展示其在实际通信系统中的应用。LDPC码适用于大数据块高速传输,而Polar码在小数据块低时延场景表现优异,帮助开发者优化5G系统设计。

sugar的博客 642

Java面向对象三大特性:封装、继承与多态实战解析

面向对象编程是现代软件开发的核心范式,其三大基本特性——封装、继承和多态构成了代码组织的基石。封装通过信息隐藏保护数据完整性,继承实现代码复用和层次化设计,多态则提供运行时灵活性。在Java工程实践中,合理运用这些特性能显著提升代码的可维护性和扩展性。以电商系统为例,商品价格封装可避免数据异常,支付方式的多态实现支持灵活扩展,而适度的继承层次保持系统清晰度。掌握这些特性的组合运用,是构建健壮Java应用的关键,也是面试中高频考察的面向对象设计能力。

weixin_33721427的博客 311

AS7262六通道可见光传感器:从光谱原理到物联网色彩检测实战

光谱检测是嵌入式感知领域的关键技术,其核心原理是通过特定波长的滤光片分离光线并转换为电信号,从而实现对环境光或物体反射光的成分分析。这项技术的价值在于将复杂的光学分析简化为可编程读取的数字信号,极大降低了色彩检测在物联网和智能设备中的应用门槛。在智能农业、工业分拣、环境监测等场景中,精确的光谱数据能够驱动自动化决策,例如评估植物光照条件或识别物料颜色。本文以Adafruit AS7262传感器为例,深入解析其基于硅干涉滤光片的六通道设计,并通过Arduino与Python实战,演示如何快速构建从数据采集到可

weixin_28738173的博客 595

导数在工程与AI中的12个实战应用解析

导数作为数学中的基本概念,本质是描述变化率的工具,其核心价值在于将非线性问题局部线性化处理。从原理上看,通过极限过程捕捉函数瞬时变化特性,使工程师能精确控制系统动态行为,帮助科学家量化自然规律变化速率。在技术实现层面,现代符号计算(如Mathematica)、数值计算(如MATLAB)和自动微分(如PyTorch)工具链的发展,大幅提升了导数计算的效率与精度。典型应用场景涵盖机械控制(如ABS防抱死系统)、金融工程(如期权希腊值计算)、医疗影像(如Canny边缘检测)等领域。特别在机器学习中,反向传播算法依

weixin_35509395的博客 316

Java面向对象三大特性:封装、继承与多态详解

面向对象编程(OOP)是现代软件开发的核心范式,其三大基本特性封装、继承和多态构成了代码组织的基石。封装通过访问控制实现数据隐藏,保护对象内部状态;继承建立类之间的层次关系,促进代码复用;多态则基于继承实现运行时动态绑定,提升系统扩展性。在Java开发中,合理运用这三大特性能够显著提升代码质量,特别是在构建复杂系统架构时,良好的封装是模块化的前提,继承体系支撑了框架扩展,而多态机制则是设计模式实现的关键。掌握这些特性对于理解Spring等主流框架的底层原理至关重要,也是应对高并发、分布式系统设计的基础能力。

weixin_30588675的博客 382

模型剪枝实战 | Torch-Pruning 库在YOLOv8上的应用指南

本文详细介绍了如何使用Torch-Pruning库对YOLOv8模型进行结构化剪枝,以实现模型“瘦身”。通过DepGraph(依赖图)技术自动处理层间依赖,确保剪枝安全。文章提供了从环境搭建、核心原理理解到完整剪枝流程的实战指南,并强调了剪枝后的微调与性能评估,帮助开发者在保持精度的同时显著提升模型推理速度。

weixin_29046035的博客 503

Java基础(二)——面向对象和类

先从简化的Java内存模型开始 栈区 基本数据类型的存储 引用数据类型的存储 堆区 方法区 面向对象要点(没对象的好好学、有对象的好好看) 类基础 方法中的不定长参数 这就是this? 返回一个this试试? this的特殊用法 看完之后就想静静的静态关键字static static与JavaBean 单例模式 什么是单例模式 单例模式的实现步骤 举例 内存分析 构造块和静态代码块 终于到final了 访问控制 封装 继承 继承的几大特点 老汉的遗产并不是全给娃娃的噢 子类如何使用父类的构造方法? 方法重写

荆州拉人去编程 4253

基于FastLIO2与TEB算法的机器狗自主导航系统实战

本文详细介绍了如何为机器狗构建一套基于FastLIO2与TEB算法的自主导航系统。通过整合FastLIO2激光惯性里程计实现精准定位,并采用TEB局部规划器进行灵活路径规划与动态避障,解决了传统方案在复杂地形下反应慢、易碰撞的问题。文章提供了从环境搭建、算法部署、地图转换到系统调试的完整实战指南,帮助开发者实现机器狗的稳健自主行走。

beer8的博客 320

PowerBI参数化实战:3分钟搞定动态数据源切换(附常见错误排查)

本文详细介绍了PowerBI参数化实战技巧,教你3分钟实现动态数据源切换。通过创建参数、改造查询和测试切换三步,轻松应对多环境部署与团队协作中的路径问题,并附上常见错误排查指南,有效提升报表的可维护性和工作效率。

p1q2r的博客 585

Java面向对象编程核心概念与实战应用

面向对象编程(OOP)是现代软件开发的核心范式,其三大特性封装、继承、多态构成了代码组织的基石。封装通过访问控制实现数据隐藏,保障系统安全性;继承提供代码复用能力但需谨慎使用;多态则赋予程序运行时灵活性。在Java语言中,这些特性通过class、interface、访问修饰符等语法元素实现。实际工程中,合理运用OOP特性可显著提升代码质量,如在电商系统中通过封装保护用户数据,利用多态实现支付渠道扩展。掌握方法重写与重载的区别、this/static等关键字的用法,以及SOLID设计原则,是构建可维护大型系统

weixin_33730836的博客 351

【STM32系统】基于STM32+手机APP设计的智能停车场系统

功能简介1、进出停车场时需要刷卡,进行一个记时、计费的功能。2、停车位配有超声波检测,主要识别车位是否被占用。3、车位区域配有OLED显示屏,用户可以通过显示屏看到空闲车位。4、车位配有车位灯。当用户找不到车位可以通过手机点亮车位灯5、停车场配有温湿度检测和烟雾检测模块。当环境发生异常状态。会触动紧急报警。6、停车场信息会通过Wi-Fi发送数据上传至阿里云。用户可以通过手机了解到停车场空闲车位和停车时间、费用。

嵌入式阿齐Archie 2万+

ArkTS类与面向对象编程——从封装继承到多态抽象的架构进阶

面向对象编程(Object-Oriented Programming,OOP)是现代软件工程的基石。它通过封装(Encapsulation)、继承(Inheritance)、多态(Polymorphism)三大核心特性,将复杂系统分解为可管理、可复用、可扩展的模块。在HarmonyOS应用开发中,ArkTS作为主力开发语言,其完整的面向对象能力为构建大规模、高可维护性的应用提供了坚实的语言级支撑。与纯函数式或过程式编程相比,OOP在鸿蒙生态中有着不可替代的优势。

从事移动开发八年,csdn博客专家,阿里云特邀专家,华为云云享专家,高级网络信息安全工程师,大数据工程师(高级),python技术开发(高级),HarmonyOS 应用开发者高级认证,现在某学校任教。 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Java面向对象编程:封装、继承与多态实战解析

面向对象编程(OOP)是现代软件开发的核心范式,其三大特性封装、继承和多态构成了代码组织的基石。封装通过访问控制实现数据隐藏,保护对象内部状态;继承建立类层次结构实现代码复用;多态则允许同一接口处理不同对象类型。在Java语言中,这些特性通过private/protected修饰符、extends关键字和方法重写等机制实现。以银行账户系统为例,Account类封装账户信息,SavingsAccount和CreditAccount通过继承扩展功能,而多态使得统一处理各类账户成为可能。掌握这些核心概念不仅能提升

congsikuai0611的博客 351

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Java基础:面向对象(二)

面向对象分析是软件开发过程的第一步,它主要关注于对问题域的理解和分析。面向对象设计是在面向对象分析的基础上进行的,它主要关注于如何将分析阶段得到的需求转化为具体的设计。面向对象编程是面向对象软件开发的实现阶段,它主要关注于使用面向对象编程语言来实现设计阶段的成果。

文优 1202

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Java基础知识点全面总结

本文系统梳理了Java开发中的核心知识点,包括面向对象特性、设计原则、数据类型、并发编程、集合框架、反射机制、动态代理等关键内容。适合Java初学者系统学习,也适合作为中级开发者的知识复习手册。

L793404933的博客 232

【java】【OOP】【xjtuse】面向对象程序设计 ppt翻译版

来背期末八股文啦!快来看全英ppt直翻!由于不够系统请配合下一篇一起食用。 什么是java?什么是oop?什么是JVM?java的执行模型?封装?多态?继承?运算符优先级?保留字有哪些?方法重载和方法重写有什么区别?四个访问修饰符的作用都是什么?this和super怎么用?字面量是什么?“is-a”“has-a”?字符串怎么拼接?字符串缓冲区怎么用?接口和抽象类的区别?

Genevieve_xiao的博客 1373

Java面试核心知识点精讲:基础篇与JVM原理

Java作为一门面向对象的编程语言,其核心特性包括跨平台能力、基本数据类型和面向对象四大特性(封装、继承、多态、抽象)。跨平台能力通过JVM(Java虚拟机)实现,JVM将Java字节码解释/编译为特定平台的机器码,从而实现'一次编写,到处运行'。基本数据类型包括8种类型,分为整数、浮点、字符和布尔四类,理解它们的特性和使用场景对编程至关重要。面向对象特性是Java的核心思想,封装隐藏实现细节,继承实现代码复用,多态允许同一操作作用于不同对象时有不同解释,抽象提取共同特征。这些基础知识点在Java面试中经常

weixin_34214500的博客 438
上一篇: 彦舜原创,优快云首发:方法中内部类对象的创建位置有何原理?方法中内部类直接访问方法中参数或变量有何限制?等等
下一篇: 彦舜原创,优快云首发:Interface入门,及其几个特点详解
彦舜
博客等级 码龄7年 2粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值