类、对象、抽象类、接口概述

JAVA基础知识(类、对象、接口) 类和对象 1.概念 类是一类事物的抽象概念,它不指一个具体事务,而是将一类事物所具有的特点进行抽取,形成一个范围指向的概念。 对象指某一类中的具体指代,表示的是一个具体事物。类生成对象的过程叫做实例化。 2.类的声明 类在使用前,必须先声明,然后才可以声明变量,创建对象。 声明语法如下: [标识符] class 类名{ //类的属性 //类的方法 } [标识符]可以是public、private、protected或者完全省略这个标识符。 private:私有访问... 阅读详情

java重新学习之

什么叫类?

类是现实世界中某一类具有相同特征或行为的事物(对象),抽象出来的。
类是广泛的概念,而对象则是该类的具体实例。
例子:人是类,因为人们都具有很多相似的特征(眼,鼻子等等)或行为(吃饭、睡觉、拉粑粑)。所以人就是类。
那小明就是类的一个实例。是世界中实实在在能看得到摸得到的人,所以,小明就是对象。


什么叫对象?

对象,就是类的一个个实例。

对象的抽象化就是类,类的具体化就是对象


什么叫抽象类

抽象类就是通过修饰符abstract修饰符修饰的类。例如Shape需要定义一个测量周长的方法calPerimeter();让子类去调用并实现的时候,不同的子类(形状)对该行为(方法)的实现又各有不同。那么该父类就不想编写该方法的实现体。
于是需求就出现了
那么如何去定义这样一个类,既能定义一些方法,又不需要方法体呢?
那么抽象类就可以完成这种功能。

如下面代码,里面的方法就不需要方法体。而子类集成父类之后,也可以使用这些方法了。

public abstract ShopSellerService {

	public abstract void deleteShopSeller(ShopSeller shopSeller);

	public abstract  List findSellerListByStoreId(String storeId);

	public abstract ShopSeller findShopSellerById(String memberId);	
}

有些人会想,既然不需要实现提,那么直接在子类中定义并实现不就可以了吗?
笔者也是这样想的。
书上给了解释,如果shape的引用变量引用到了shape子类的实例。父类中没有定义这种方法,而是在子类中定义并实现。那么该引用变量去使用这个方法的时候,就需要强制类型转换,这样就降低了程序的灵活性。

抽象类使用方法:
1.抽象类和抽象方法必须要用abstract修饰,抽象方法不能有方法体。
2.抽象类无法被实例化,无法使用new关键字来调用构造器来创建抽象类的实例。即使抽象类里不包含抽象方法也不能创建实例。
3.抽象类里可以包含,方法(普通、抽象方法)、构造器、初始化块、内部类5种成分。抽象类的构造器不能用于创建对象,而是用于被子类调用的。
4.包含抽象方法的类,一定要被定义成抽象类。但是抽象类中可以没有抽象方法。

包含抽象方法的类,有以下3种情况。

  1. 直接定义一个抽象方法。
  2. 继承成一个抽象父类,但没有完全实现父类包含的抽象方法。
  3. 实现了一个接口,但没有完全实现接口包含的抽象方法。

注意:当使用static修饰一个方法时,表明这个方法属于该类本身,即通过类就可调用该方法,但如果该方法被定义成抽象方法,则将导致通过该类来调用该方法时出现错误(调用了一个没有方法体的方法肯定会引起错误)。因此static和abstract不能同时修饰某个方法,即没有所谓的类抽象方法。

什么叫接口?

接口是一种特殊的抽象类,接口中不能包含普通方法。但是Java8允许接口中定义默认方法,默认方法可以提供方法实现。
什么是默认方法?Java8改进这点优点在哪里
接口定义了一些所需要遵守的规范,接口不关心实现类的内部数据,也不关心这些类中方法的实现细节。但!一定要遵守这些规范!就是子类必须要实现接口中的方法才行!
例子:
就像学校规定了学生上学的规范:8点之前上课,必须穿校服,等等。
但是学校不关心你几分几秒到,不关心你怎么到的学校,只要8点前到就行。
学校也不会关心你校服里面穿什么,只要穿校服就行!
这就是规范,只要遵守这些规范就行。

接口与抽象类的区别

1.接口中不能有普通方法,但可以有默认方法default定义的方法,以及默认方法的实现。抽象类中可以有抽象方法,普通方法,也可以没有抽象方法。
2.定义抽象类是对普通的class添加abstract,即为抽象类。但是接口不需要class,而是需要interface
[修饰符] interface [接口名] extends 父接口1 父接口2
一个接口可以有多个父接口,但是接口只能继承接口,不能继承类。
3.接口中不能包含构造器和初始化块来定义。接口里可以包含成员变量(只能是静态常量)、方法(只能是抽象实例方法、类方法或默认方法、)、内部类(包括内部接口、枚举)定义。
今天在写项目的时候,发现接口中的方法都没有修饰符,于是很好奇
接口定义的是多个类的行为规范,因此,接口中的所有的成员(方法、常量、内部类、和内部枚举)都是public访问权限的。定义接口成员时可以省略访问控制修饰符,如果要为成员指定访问控制修饰符,也只能是用public。
而成员变量默认是public static final修饰的,在接口中都没省略了。

接口与类的区别
接口支持多继承,接口可以继承多个父接口。类不支持多继承。类只能继承一个父类。
问题:前面说过子类继承接口之后,必须要实现全部的方法才行。如果不能继承父接口的全部方法,那么这个子类就包含抽象方法。那么前面说过,包含抽象方法的类,必须是抽象类。那么疑问来了,子接口继承父接口又不能实现父接口中的方法那么继承父接口干嘛呢?

接口既然是给多个类提供行为规范的,那么父接口的规范可能不够精细。有一些类需要更加严格的规范怎么办呢?
比如学校定义了一些广泛的规范。但是每个班级又有一些特殊的要求。所以班级的要求既要遵守学校的规范,又要有自己的规范。那么子接口就出现了。

从某种程度上来看,接口类似于整个系统的“总纲”,它制定了系统各模块应该遵循的标准,因此一个系统中的接口不应该经常改变。一旦接口被改变,对整个系统甚至其他系统的影响将是辐射式的,导致系统中大部分类都需要改写。
抽象类则不一样,抽象类作为系统中多个子类的共同父类,它所体现的是一种模板式设计。抽象类作为多个子类的抽象父类,可以被当成系统实现过程中的中间产品,这个中间产品已经实现了系统的部分功能(那些已经提供实现的方法),但这个产品依然不能当成最终产品,必须有更进一步的完善,这种完善可能有几种不同方式。

深入了解torch框架 大国的游戏,政府支持到位,是未来;AI : Artificial Intelligence,旨在研究、开发能够模拟、延伸和扩展人类智能的理论、方法、技术及应用系统,是一种拥有自主学习和推理能力的技术。它模仿人类大脑某些功能,包括感知、学习、理解、决策和问题解决。AI本质​ NLP(说话,听)、CV(眼睛)、自动驾驶、机器人(肢体动作)、大模型三要素:数据、网络、算力① 神经网络:找到合适的数学公式;② 训练:用已有数据训练网络,目标是求最优解;③ 推理:用模型预测新样本;PyTorch,简称Torch 阅读详情

相关推荐

vcpkg管理OpenCASCADE的5个高效技巧:从多版本共存到离线部署

本文详细介绍了使用vcpkg高效管理OpenCASCADE的5个实用技巧,包括多版本共存、性能优化、团队共享、CI/CD集成和离线部署。通过自动配置和版本控制,vcpkg显著简化了OpenCASCADE的开发环境管理,特别适合工业级CAD开发场景。

rain6的博客 187

Java中的对象、类、抽象类、接口的理解

更好阅读体验:Java中的对象、类、抽象类、接口的理解 1.对象 对象是个具体的东西,有着明确的属性特征和行为特征。 例如:你手上牵着的女朋友或男朋友就是个具体的对象。 如图中的苏格兰折耳猫,特征是耳朵向下呈折叠状,有着具体的颜色(你看到的颜色),并且和其他猫科动物有着共同的基本特征。 2.类 类是个抽象的东西,有着一些基本属性和行为。 例如:你的对象是某类人(男人、女人等),但具体是哪个就不知道了,因为Ta还没出现(还没实例化)。 以下三个都是同一类猫,统称为苏格兰折耳猫,特征是耳朵向

持 开源思想,撰 必胜所学,望 勤学者,无难处 730

AI辅助专利撰写实战:30分钟高效产出发明专利初稿

在技术创新的浪潮中,专利撰写常常是开发者将创意转化为知识产权保护壁垒的关键一步,但这个过程往往耗时费力,需要兼顾技术深度与法律文书规范。近期,借助AI辅助工具来提升专利撰写效率已成为一个热门探索方向。本文将围绕如何利用AI工具,在30分钟内高效完成一篇具备授权潜力的发明专利初稿,进行一场从0到1的实战演练。无论你是独立开发者、初创团队的技术负责人,还是希望保护自己研究成果的学生,这套方法都能帮助你快速梳理技术方案,形成结构严谨、逻辑清晰的专利申请文档。 1. 背景与核心概念:AI辅助专利撰写的价值与边界 在

weixin_34253126的博客 493

对「Java」中对象、类、抽象类、接口的理解

类和对象 一个对象对应一个实体,用代码来描述实体的状态和行为。而如果一切皆对象,那么由什么来决定某一类的对象的外观和行为呢,也就是对象的类型(Type)。也就是说,类是对一类具有相同外观和行为的对象的抽象。 先有对象还是先有类 看似是先有鸡还是先有蛋的哲学问题,其实从现实生活中发现。是先有实体的存在,然后人们将这些实体的外观和行为统一抽象概括。比如说:你我他、小明的存在。我们都被归于人这个类型,因为我们具有相似的外观和行为。 抽象是有层次的 对某一类的对象的抽象程度不同,形成的类在抽象层次树中的位置不同。继

weixin_42862555的博客 991

从仿真到实机:四足机器人控制算法的全流程验证框架

本文系统阐述了四足机器人从仿真到实机的全流程验证框架。针对仿真与实机环境的巨大差异,文章详细介绍了在MuJoCo等高保真仿真环境中的建模、算法迭代与压力测试方法,并重点解析了通过硬件抽象层和中间件搭建通往实机的关键桥梁。最后,提供了实机部署的安全清单与调试策略,旨在帮助开发者构建可重复、风险可控的算法验证闭环,提升算法在真实世界中的鲁棒性与可靠性。

lilh34434的博客 381

阿里云网络架构设计

背景 一个企业上云,首先要考虑整个网络的规划,涉及到云上和云下的网络规划,云上VPC的规划,云上不同地域VPC的互通,云上可用区的选择等等,所以一定要提前规划好整体的网络架构,现在阿里云云上的虚拟化网络解决方案已经完全转向 了云企业网,所以所有使用阿里云的企业客户多多少少都会使用阿里云的CEN 支撑自己的业务。 云企业网介绍 云企业网(Cloud Enterprise Network)是承载在阿里云提供的高性能、低延迟的私有全球网络上的一张高可用网络。 IDC专线接入CEN 首先面临的是云上和云下打通,那么

修电脑的码农 4838

java中面向对象的三大基本特征

转载,原文来自http://blog.sina.com.cn/s/blog_5f79a56a0100c6ig.html 众所周知,java中的面向对象的三大基本特征是:【封装】、【继承】、【多态】 一、封装         对象要有一个明确的边界;边界的划分(对象各司其职、对象的粒度、对象的可重用性)         具体来说:                 1.属性: 私有

蓝天梦 1万+

从零开始:PLUMED与GROMACS整合安装全攻略

本文详细介绍了如何从零开始整合安装PLUMED与GROMACS,包括系统环境检查、MPI配置、PLUMED编译安装、GROMACS补丁应用及常见问题解决方案。通过本教程,研究人员可以快速完成分子动力学模拟工具的整合安装,实现增强采样和自由能计算功能。

weixin_42520796的博客 292

类、对象、接口

本文为 Week4 笔记 Java程序设计 唐大仕 类 组成Java程序的基本要素 是一类对象的原型 封装类一类对象的状态和方法 字段和方法 字段(field)是类的属性,是用变量来表示的。字段又称为域、属性、成员变量 方法(method)是类的功能和操作,是用函数来表示的 构造方法 构造方法是一种特殊的方法 用来初始化(new)该类的一个新的对象 构造方

我叫王哈哈 2777

解决RabbitMq登录时报出Not management user(Login failed)错误以及rabbitmqctl(RabbitMq)新增用户和用户角色权限

解决RabbitMq登录时报出Not management user(Login failed)错误以及rabbitmqctl(RabbitMq)查看用户权限、新增用户和用户角色权限。

念兮为美 7479

深度学习实战102-基于深度学习的网络入侵检测系统,利用各种AI模型和pytorch框架实现网络入侵检测

在明确了研究背景后,我们需要设定明确的项目目标。本项目的核心目标是开发一个高精度、低延迟的网络入侵检测系统检测准确率:达到95%以上,确保系统能够有效识别各类已知和未知的入侵行为。响应时间:控制在毫秒级范围内,以实现实时监测和快速响应。模型鲁棒性:在面对不同类型的网络环境和攻击手法时,系统需保持稳定的性能输出。可扩展性:系统设计需考虑未来可能面临的新型威胁,便于后续升级和维护。

微学AI的博客 1790

UML基础、建模与设计实战笔记04第5章类图和对象图,类图概述,对象图概述,接口,抽象类,类之间的关系,类图建模技术及应用。

1、常见uml建模工具 P88

weixin_43745804的博客 2292

NCCL 核心集体通信操作深度解析:从原理到优化实践

操作逻辑:若 N 个 GPU 各持有一段数据(大小为 S),通信后每个 GPU 会持有所有 N 段数据(总大小为 N×S)。典型场景:多卡推理结果聚合、模型并行中间结果同步。操作逻辑:N 个 GPU 各持有数据,通过归约(求和、取平均等)运算后,所有 GPU 获得相同结果。典型场景:数据并行训练的梯度聚合(如 SGD 优化器)。操作逻辑:N 个 GPU 各持有 N 份数据分片,通信后每个 GPU 获得所有 GPU 的对应分片。典型场景。

jundao1997的专栏 679

8.Java面向对象-抽象类、接口

8.Java面向对象-抽象类、接口 一、抽象类的概述及其特点 A:抽象类概述 回想前面我们的猫狗案例,提取出了一个动物类。并且我们在前面也创建过了动物对象,其实这是不对的。 为什么呢?因为,我说动物,你知道我说的是什么动物吗?只有看到了具体的动物,你才知道,这是什么动物。 所以说,动物本身并不是一个具体的事物,而是一个抽象的事物。只有真正的猫,狗才是具体的动物。 同理,我们也可以推想,不同的动物吃的东西应该是不一样的,所以,我们不应该在动物类中给出具体体现,而是应该给出一个声明即可。 在Jav

qq_39004315的博客 163

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

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

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

C#-抽象类与接口

抽象类和接口这两种类型用于完全不同的目的。抽象类主要用作对象的基类,贡献某些主要的特性,例如共同的目的和结构。接口则主要是用于类,为这些类去添加不同的方法(行为)。

qq_43733614的博客 3822

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

面向对象(四):多态;抽象类;接口

面向对象(四) 一、多态 1、多态的概述及格式 某一个事物,在不同时刻表现出来的不同状态。 前提:a:要有继承关系; b:要有方法重写; c:要有父类引用指向子类对象。 父 f = new 子(); 举例: public class Test { public static void main(String[] args) { Dog d...

y_Engineer的博客 355

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Java 面向对象 (类和对象、继承、封装、多态、接口、抽象类)一文详解

Java 面向对象 (类和对象、继承、封装、多态、接口、抽象类)一文详解

qq_62144826的博客 1422

java学习面向对象(多态&抽象类&接口)

1.多态 1.1多态的概述(记忆) 什么是多态 ​ 同一个对象,在不同时刻表现出来的不同形态 多态的前提 要有继承或实现关系 要有方法的重写 要有父类引用指向子类对象 1.2多态中的成员访问特点(记忆) 成员访问特点 成员变量 ​ 编译看父类,运行看父类 成员方法 ​ 编译看父类,运行看子类 代码演示 动物类 public class Animal { ...

Ruoice的博客 354

在代码底层中找 自己需要的类和方法 接口 与 抽象类

在代码底层 有类和接口 整理清楚接口 与 抽象类 、父类、实体类的特性 其中的接口 接口不能实列化,就是不能创建接口对象 使用接口得用实体类实现它 用来制定规则与扩展功能 可以有 成员变量但只能是常量 默认修饰符:public static final 接口类 的方法类型有 没有构造方法 成员方法​ 有 抽象方法 默认修饰符:public abstract 默认方法和静态方法 JDK8版本 格式 public default 返回值类型 方法名(参数列表) { } public sta

酆都城博客 137

类和接口及抽象类内部类

//基本类 publicclassManagerextendsPersonimplementsJob{ } //抽象类 publicabastractclassPerson{ Stringid; Stringname; intage; //对应get和set方法 publicabstractSt...

weixin_30706507的博客 75

类和对象(5)——抽象类和接口

抽象类中可以包含普通方法和普通字段,这样的普通方法和字段可以被子类直接使用(不必重写),而接口中 不能包含普通方法,子类必须重写所有的抽象方法。

2301_80030290的博客 1311

类、抽象类、接口之间的区别

  目录 1、类与抽象类的异同之处 (1)类和抽象类的区别  (2)类和抽象类的相同之处 2、接口与类的异同之处 (1)接口与类相似点 (2)接口与类的区别 (3)接口特性 3、抽象类和接口的区别 1、类与抽象类的异同之处 抽象类的定义:由关键字abstract声明的类为抽象类。 (1)类和抽象类的区别  类可以实例化对象,而抽象类不能实例化对象。 (2)类和抽象类的相同...

清晨-阳光的博客 4465

Java类和对象-抽象类与接口

Object类里还有许多方法,随着Java学习的深入,我们可以了解更多关于Object类方法的应用以及如何重写最为合适。

2301_80693713的博客 715

Java对象、类、接口

本文针对即将面试实习的同学,总结了Java对象、类、接口有关的常见面试题及其知识点,你也可以依照本文的问题自测,查缺补漏

清酒伴风的博客 1178

java类、抽象类、接口、继承和对象解析

这不是什么教材,笔者有时会在论坛上瞧瞧,看到不少初学者问到很多问题,这些问题是java程序员应该懂得的,而一般书上不会讲到或者一笔带过的知识。因此斗胆涂鸦一篇文章,把想说的在这里一口气说完。这也是本人第一次写技术性的文章,文笔不畅之外,还请各位见谅。首先讲清楚类和对象的区别。类是广泛的概念,表示一个有共同性质的群体,而对象指的是具体的一个实实在在的东西。例如,“人”是一个类,它可以表示地球上所有的

Go for it! 1900

对Java中对象、类、抽象类、接口的理解

对Java中对象、类、抽象类、接口的理解类和对象先有对象还是先有类抽象是有层次的抽象类的形成抽象类的构成抽象类和普通类接口的意义接口和抽象类接口的构成 类和对象 一个对象对应一个实体,用代码来描述实体的状态和行为。而如果一切皆对象,那么由什么来决定某一类的对象的外观和行为呢,也就是对象的类型(Type)。也就是说,类是对一类具有相同外观和行为的对象的抽象。 先有对象还是先有类 看似是先有鸡还是先有...

帝轩的博客 419
上一篇: 1045-Access denied for user ‘root’@'localhost’解决方法
下一篇: 面试题之java基础
money云
博客等级 码龄10年 28粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值