java基础---抽象类

《JAVA 基础: 抽象类与接口》 dd 阅读详情

1. 抽象:模糊, 发现事物的共性, 并向上抽取,提高代码的复用性;如果一个类没有足够的信息来描述一个具体的对象,而需要其他具体的类来支撑它,那么这样的类我们称它为抽象类。

2. 向上抽取,不同的对象有相同的方法 功能, 但方法的内容不同;

//所包含的变量和方法,不能具体描述一个事物, 只是抽象出了一些动物的共性
abstract class animal
{
	//抽象方法也要加上abstract,表示抽象方法
	 abstract void shouting();
}

class dog extends animal
{
	//狗有吼叫,但吼叫的内容是汪汪
	void shouting()
	{
		System.out.println("wangwang");
	}
}

class cat extends animal
{
	//猫有吼叫, 但吼叫的内容是喵喵
	void shouting()
	{
		System.out.println("miaomiao");
	}
}
3. 方法只有声明没有实现时候,该方法就是抽象方法,需要被abstract修饰;抽象方法必须定义在抽象类中,该类也必须被abstract修饰;因为一个类不是抽象类, 很有可能被创建对象, 当对象调用到该类的抽象方法时候,就产生矛盾;

4. 抽象类不能被实例化;也就是不能new 对象;因为调用抽象方法没有意义;

5. 抽象类的所有方法都需要被子类所继承后, 该子类才能实例化,否则该子类还是抽象类;

6.  抽象类有构造函数,因为抽象类的构造函数用于给子类对象进行初始化;

7. Java抽象类中不能有静态的抽象方法。静态方法必须自立更生,要有具体的实现,JVM规定当前类必须为静态方法提供实现。而抽象方法呢?不用实现它。所以这两个修饰关键字是矛盾体,一对冤家

8. 抽象方法必须由子类来进行重写。

9. 抽象方法必须在子类中实现,这句话对吗?

从两个层面来回答:
1. 某一个类如果定义了某个方法是抽象方法,则在本类中不能有任何实现,必须在子类中实现才行。(这里的子类,是广义的子类。)
2. 某一个类如果定义了某个方法是抽象方法,其子类并非一定要实现。不想实现父类中的抽象方法的话,子类同样定义成抽象类就是了。(这里的父类,也是广义的父类。)

10. 抽象类中可以包含具体的方法,当然也可以不包含抽象方法。

11. 只要包含一个抽象方法的抽象类,该方法必须要定义成抽象类,不管是否还包含有其他方法。

12. 子类中的抽象方法不能与父类的抽象方法同名。

13. abstract不能与final并列修饰同一个类。

14.abstract 不能与private、static、final或native并列修饰同一个方法。、

 private不行的原因是private修饰的变量和方法不会被子类所访问, 子类没有这个权限, 而定义抽象的意义就是让子类重写, 子类都不能访问到 , 就不能重写了

1.为什么不能在abstract方法前加static呢?
在没有实例化类的情况下(不讨论abstract类不能实例化),加了static后可以直接通过Class.method()来调用该方法,这个方法都没方法体,你觉得调用这样的方法有实际的意义么。(编程语言就是为了解决生活中的问题,而这个问题在生活中是没有意义的那编程语言也不会去实现它,如: 一台电视机上有一个电源按钮(方法),而这个按钮按下却没有任何作用,你说这样的按钮有实际的意义吗?)。static是静态,就是在编译时已经确定的东西,当然不能是抽象(动态)的,那是运行时才能确定的东西。


2.为什么不能加final?
abstract类需要被继承才能使用的,给方法加了final后方法就不能被导出类(子类)所修改,abstract类还没有实现,而子类又不许修改。这将产生一个没有实际意义的方法(跟就上面说的电源按钮一样)。

15.在抽象类中可以写非抽象的方法,从而避免在子类中重复书写他们,这样可以提高代码的复用性,这是抽象类的优势;接口中只能有抽象的方法。

STM32实战指南:TFTLCD液晶屏驱动与ILI9341应用解析 本文详细解析了STM32驱动TFTLCD液晶屏的实战技巧,重点介绍了ILI9341控制器的硬件连接、寄存器操作及性能优化方法。通过8080并行接口时序分析、GRAM操作优化和DMA传输应用,帮助开发者高效实现液晶屏驱动,适用于工业控制、智能家居等场景。 阅读详情

相关推荐

学习利用ce修改游戏生命参数

易语言代码 游戏的简陋界面 用ce查找存储这个1000即生命值的内存地址(得先附加到目标程序上,点击左上角那个电脑按钮) 看到有很多值为1000的,但哪个是生命值呢?真相只有一个 我们点击一下打我这个按钮,看下面的ce界面上地址为004A65C0处的值变了,所以这个就是我们要找的生命值 接下来我们对生命值进行修改,修改为99

zsd747289639的博客 5万+

Java基础---抽象类和接口

抽象类1.抽象的定义 抽象就是从多个事物中将共性的,本质的内容抽取出来。 例如,圆,方形,三角形等几何图形可以抽象出一个图形类,该类具有几何图形的基本属性,周长,面积等。 2.抽象类 Java中可以定义没有方法体的方法,该方法的具体实现由子类完成,该方法称为抽象方法,包含抽象方法的类就是抽象类。 抽象类的由来: 多个对象都具备相同的功能,但是功能具体内容有所不同,那么在抽取过程中,只抽取了功能定义

War3cdota的博客 991

双目立体成像(一)双目图片生成点云

利用左右目图片生成点云

qq_62964142的博客 4550

JAVA基础(抽象类)

一,抽象类的定义 普通类前加上abstract关键字,类中定义抽象方法(定义中加上abstract的方法,且没有方法体,只有方法的声明)

huicoker的博客 278

遗传算法详解 附python代码实现

遗传算法 遗传算法是用于解决最优化问题的一种搜索算法。从名字来看,遗传算法借用了生物学里达尔文的进化理论:”适者生存,不适者淘汰“,将该理论以算法的形式表现出来就是遗传算法的过程。 问题引入 上面提到遗传算法是用来解决最优化问题的,下面我将以求二元函数: def F(x, y): return 3*(1-x)**2*np.exp(-(x**2)-(y+1)**2)- 10*(x/5 - x**3......

ha_ha_ha233的博客 22万+

基于EKF的UWB-IMU融合定位系统在农业机器人中的抗干扰优化与Matlab仿真

本文探讨了基于扩展卡尔曼滤波(EKF)的UWB-IMU传感器融合定位系统在农业机器人中的应用。通过Matlab仿真验证,该系统有效解决了农业环境中UWB信号遮挡和IMU累积误差问题,实现了厘米级高精度定位,显著提升了机器人在复杂场景下的抗干扰能力和导航可靠性。

numpy6sculptor的博客 624

java基础 抽象类

本文主要介绍java基础中的抽象类,包括其定义、及用法,包括使用时所需注意的格式与特点。

m0_75209145的博客 1347

X86/64架构中的总线 和 ARM架构中总线的理解

内部总线 /CPU总线/FSB前端总线:类似ARM架构中的AHB总线北桥? 直接和CPU连接,这条总线主要由CPU使用,用来与高速缓存、主存和北桥(或MCH)之间传送信息。 外部总线:类似ARM架构中的APB总线(外围总线)南桥?例如PCI总线、USB总线等 通过北桥与CPU连接(南桥?),是CPU与内存RAM、ROM和输入/输出设备接口之间进行通讯的通路 内存总线:内存与北桥间的总线称为内存总线 ...

a746742897的博客 1067

Java基础--抽象类

上面说到类中行为和特征满足我们实例时,我们就可以获取到该类的实例,但是在也会有特殊情况,如果一个类没有足够的信息来描述一个具体的对象,这个类就是抽象类,而抽象类是无法实例化对象的。这其实很好理解,比如你的好哥们想要new一个对象,来找你帮忙,你问他想找啥样的,他说和你对象差不多就行。这就很抽象是吧。。。🌝于是你根据他这样的描述就能难找到这样的人。但是如果他加上详细的信息那么就能找到这样的人,

lfnew的博客 4226

SAP 生产订单归档简介

通常在使用了几年的SAP后,系统中会产生非常多的数据在系统中,特别是制造业的生产订单,常年的累积会存在很多的订单在系统中,这个时候就可以使用归档的功能,对生产订单进行处理。标记DLFL的前提是需要完成生产订单的差异结算,DLFL标记可以清除掉生产订单的相关需求和预留。6、在执行CO78选择删除,前面的操作相当于我们把需要归档的数据写入了数据库中,现在正式进行数据的归档删除。然后我们co03在去看生产订单,可以看到生产订单中多了删除的状态和标记的状态。我这里直接执行的程序PPARCHP1,效果其实是一样的。

我小时候很黑的博客 2285

从Safety Manual到系统安全概念

本文系统阐述了构建功能安全"证据链"的工程化方法论,核心要点包括:1)建立"风险→对策→验证→证据"闭环链条;2)SafetyManual和FMEDA作为关键证据支撑点,前者界定系统安全边界,后者量化诊断覆盖率;3)通过四步法继承芯片安全机制并扩展至系统级;4)形成"设计-分析-验证"三维闭环体系,包括安全目标、技术实现和验证矩阵;5)强调证据链闭环对安全认证和OEM认可的重要性。该方法论实现了从理论要求到工程实践的完整转化,确保安全设计可验证、可

VehSwHwDeveloper的博客 721

Java基础-抽象类

抽象类 分析事物时,发现了共性内容,就出现向上抽取。会有这样一种特殊情况,就是方法功能声明相同,但方法功能主体不同。那么这时也可以抽取,但只抽取方法声明,不抽取方法主体。那么此方法就是一个抽象方法。 abstract:关键字:用于修饰方法和类 抽象类:有抽象方法的类必须是抽象类 抽象方法:不同类的方法是相似,但是具体内容又不太一样,所以我们只能抽取他的声明,没有具体的方法体,没有具体方法体的方...

qq_43559559的博客 177

java零基础从入门到精通(全)

目录前言1. 入门知识1.1 java体系1.2 JDK/JRE/JVM区别1.3 编译与运行理解1.4 类体函数细节2. 标识符 前言 java优势 健壮性(JVM(C++语言写的一个虚拟的计算机)、GC(垃圾回收机制)) 多线程并发 可移植性/跨平台 1. 入门知识 1.1 java体系 JavaSE:标准版 JavaEE:企业版 JavaME:微型版 1.2 JDK/JRE/JVM区别 JVM是不能独立安装的。 JRE和JDK都是可以独立安装的 层层嵌套,jvm包括jdk,jdk包括jre

码农研究僧的博客 6万+

Java基础——抽象类和接口

抽象类、接口以及Object类toString方法、equals方法、comparable接口、cloneable接口的使用

explorer363的博客 624

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Java基础_抽象类和接口

Java基础_抽象类和接口

weixin_64977805的博客 155

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Java基础之接口与抽象类的区别

Java基础之接口与抽象类的区别

qq_40091033的博客 114

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Java基础之继承、多态、抽象类

继承、多态、抽象类、猜数字小游戏、代码块

m0_58050808的博客 788

Java基础(十一):抽象类、接口、内部类

抽象类不能创建对象,如果创建,编译无法通过而报错。只能创建其非抽象子类的对象理解:假设创建了抽象类的对象,调用抽象的方法,而抽象方法没有具体的方法体,没有意义抽象类是用来被继承的,抽象类的子类必须重写父类的抽象方法,并提供方法体若没有重写全部的抽象方法,仍为抽象类抽象类中,也有构造方法,是供子类创建对象时,初始化父类成员变量使用的理解:子类的构造方法中,有默认的super()或手动的super(实参列表),需要访问父类构造方法抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类。

从基础到源码解析的学习记录 1640

【JAVA SE基础】抽象类和接口

抽象类和接口作为核心概念,发挥着不可或缺的作用,在本篇博客中,我们将探讨抽象类和接口的定义、特点及其实际应用。

2302_76707004的博客 1328

Java基础抽象类

用abstract关键字来修饰一个类时,叫抽象类 用abstract关键字来修饰一个方法,就是抽象方法 访问修饰符 abstract class 类名{ //抽象类 访问修饰符 abstract 返回值类型 方法名(参数列表); //抽象方法 (注意没有方法体) } 抽象类的价值更多作用是在于设计,是设计者设计好后,让子类继承并实现抽象类() 抽象类,在框架和设计模式使用较多 使用细节: 抽象类不能被实例化 抽象类不一定要包含abstra...

qiyuzi的博客 223

【Java基础】继承、抽象类、注解

本文重点介绍了Java中继承的概念,同时也讲解了抽象类用于规定子类该实现什么方法,以及Java所有类的祖先Object类和注解的使用方法

Ricky的博客 1892

Java基础之接口与抽象类区别

Java基础之接口与抽象类区别

李长渊的博客 684

Java基础5(继承、final、抽象类)

子类不能继承父类的私有的成员变量Java中只能有一个父类(单继承),但是可以多层继承Java中所有的类默认都是object的子类子类在创建实例时会调用所有多层的父类的构造函数super()是调用父类对应参数的构造函数子类调用父类用superthis.eat();super()和this()一样必须放在函数的第一行方法的重写,注意重写(父子)和重载(同一类中)子类重写了父类的方法后,子类创建的实例就会以就近原则访问重写后的方法子类重写父类的方法的权限不能缩小。

2301_80711052的博客 1191

java基础(6)抽象类和接口

哈喽大家好吖,今天继续为大家带了java基础中也是比较关键的抽象类和接口,想要把这一部分理解透彻也是需要下大功力,那么让我们废话不多说,开始!

2301_81073317的博客 1335

Java基础复习(抽象类与接口)

Java基础复习,记录自己的学习过程,同时也为初学者或者是一些不经常写Java的朋友们回忆起java基本语法

Y3036359510的博客 457

Java基础之抽象类

1.java之抽象类的基本概念 普通类就是完善的功能类,直接生产对象并使用,其中的方法都已经实现完整(带有方法体"{}").抽象类的最大特点包含了抽象方法,抽象方法是只声明(没有方法体)的方法,抽象方法定义时使用abstract关键字完成,并且抽象方法一定要在抽象类中,抽象类要使用abstract关键字声明. 重点:在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用...

weixin_45200954的博客 225
上一篇: java基础---继承
下一篇: java基础---接口和抽象类
big_bit
博客等级 码龄11年 67粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值