Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >抽象类和接口(我学习做的笔记供大家参考)

抽象类和接口(我学习做的笔记供大家参考)

作者头像
全栈程序员站长
发布于 2022-06-29 07:17:17
发布于 2022-06-29 07:17:17
2430
举报

抽象类,定义 接口 定义 两者的区别

—————————– 抽象类: abstract关键字修饰

public abstract class Pet{//抽象类

public abstract void toHospitol();//抽象方法

} (1)抽象类不能不被实例 但是可以创建一个抽象类类型的引用变量 ,这个引用变量指向非抽象的子类类型;

Pet dog=new Dog(); dog.toHospital();

(2)抽象方法没有方法体

抽象类中可以有非抽象的构造方法,创建子类的 实例时可以调用。 没有 抽象够着方法,没有抽象静态方法

怎么调用了????? (1)如果父类中有静态方法(用static 修饰),子类也 有同名的静态方法,在调用的(静态绑定) 时候还是调用父类的静态方法。 (2)如果父类和子类中都有成名的成员变量,在调用的饿时候调用的是父类的成员变量(静态绑定) (3)父类有构造方法。子类也有构造方法,先调用父类,在调用子类(静态绑定)

(4)java虚拟机动态绑定机制,在子类中重写了父类的方法后, 在调用这个方法的时候是调用子类重写后的方法

eg:public abstract class Base{ public String var=”base1″; public Base(){System.out.println(“父类的构造方法”);}

public static void method4(){

System.out.println(“父类的静态方法method4”); }

}

public class Sub1 extends Base{

public String var=”base2″;

public Sub1(){System.out.println(“子类的构造方法”);} public static void method4(){ System.out.println(“子类的静态方法method4”); }

}

public class Test{

Base base=new Sub1();//先调用父类的,在调用子类的 base.method4();//调用的是父类的 System.out.println(base.var);//也是调用父类的 }

————————————— 接口: 为什么使用接口? 在java中支持单根继承的。

问题:实现防盗门的功能

将门定义为抽象类,锁定义为接口,

防盗门继承们,实现 锁的 接口

接口:interface 叫做实现一个接口

is a 的关系 防盗门是一个门

has a 的关系 防盗门有一个锁

上锁、开锁是一种能力,接口表示一种能力

定义Door抽象类:具有开、关门的功能 定义Lock接口:具有上锁、开锁 编写防盗门类,继承door 实现lock接口

/* * 门抽象类 */ public abstract class Door { //开 public abstract void open(); //关 public abstract void close(); }

public interface DoorBell { //门铃,具有拍照的功能 public abstract void takePhotos(); }

public interface Lock { //锁 public abstract void lockup(); //开锁 public abstract void lockopenI(); }

//防盗门 public class TheftproofDoor extends Door implements Lock, DoorBell {

public void lockup() { System.out.println(“插进钥匙,向左转三圈,锁上了”);

}

public void lockopenI() { System.out.println(“插进钥匙,向右转三圈,锁开了”);

}

public void open() { System.out.println(“用力推,门开了”);

}

public void close() { System.out.println(“亲亲拉门,门关上了”);

}

public void takePhotos() { System.out.println(“主人不在家,拍照可存档!”);

}

}

public class Test {

/** * @param args */ public static void main(String[] args) { TheftproofDoor myDoor=new TheftproofDoor(); myDoor.close(); myDoor.open(); myDoor.lockopenI(); myDoor.lockup(); myDoor.takePhotos(); } }

一个人可以具有多项能力, 一个类可以实现多个接口

接口有比抽象类更好的特性: 可以被多个继承 设计和实现完全分离 更自然的使用多态 更容易搭建程序框架 更容易跟换实现 …………

接口是一种约定:有些接口只有名称

面向接口编程:程序设计面向接口的约定而不考虑具体实现

public interface MyInterface{ //变量: 默认:public static final public void foo();//默认:public abstrct //其他方法 }

public class MyClass extends Base implements MyInterface,MyInterface2{

} 继承了Base类,实现了接口MyInterface和MyInterface2

接口中的方法就是抽象方法,可以不写abstract ,模认的就是public abstract

特征: 接口不可以被实例化 实现类必须实现接口的所有方法 实现类可以实现多个接口,用implements/多接口使用逗号隔开变量都是静态常量:public static final

用程序来描述usb接口: 分析:

可以使用java接口来实现: 编写usb接口 实现usb接口 使用接口(父类的引用指向子类对象,多态)

接口表示一种能力,体系在接口的方法上

面向接口编程: 关心实现类有和能力,而不关心实现细节 面向接口的约定二不考虑接口的具体实现

//定义了usb接口规范 public interface UsbInterface { //提供usb服务 public void service(); }

/* * U盘 */

public class UDisk implements UsbInterface{ public void service(){ System.out.println(“U盘:连接usb接口传输数据”); } }

/* * 风扇 */ public class UFan implements UsbInterface {

public void service() { System.out.println(“开始转动了”); }

}

public class Test { public static void main(String[] args) { UsbInterface udisk=new UDisk(); udisk.service(); System.out.println(“******实现接口********”); UsbInterface ufan=new UFan(); ufan.service(); } }

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/100823.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年5月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
综述:高维单细胞RNA测序数据分析工具(上)
当你的才华还撑不起你的野心时,请潜下心来,脚踏实地,跟着我们慢慢进步。不知不觉在单细胞转录组领域做知识分析也快两年了,通过文献速递这个栏目很幸运聚集了一些小伙伴携手共进,一起成长。
生信技能树jimmy
2020/05/19
2.2K0
单细胞转录和染色质可及性分析重新定义成人肾脏的细胞异质性
文章标题:《Single cell transcriptional and chromatin accessibility profiling redefine cellular heterogeneity in the adult human kidney》
生信技能树jimmy
2023/11/06
1.4K0
单细胞转录和染色质可及性分析重新定义成人肾脏的细胞异质性
高维单细胞转录组数据处理最新(2020年3月)综述(万字长文)
看到隔壁《单细胞天地》公众号翻译了一个最新的单细胞数据处理综述,很精彩,所以申请转载到生信技能树平台以飨读者:
生信技能树
2020/05/14
2.7K0
高维单细胞转录组数据处理最新(2020年3月)综述(万字长文)
单细胞转录组数据分析的10大软件/流程
单细胞数据分析现在已经有上千个软件工具可供使用了,这为用户带来便利的同时也造成了选择困难。就像时间一样,一个表,没问题,但如果有两个表,时间还不一样,该信谁的呢?
简说基因
2024/01/31
1.1K0
单细胞转录组数据分析的10大软件/流程
单细胞入门【2】:scRNA-seq测序数据的计算分析指南
scRNA-seq是一种流行且功能强大的技术,可分析大量单个细胞的整个转录组。然而对这些实验生成的大量数据的分析需要专门的统计和计算方法。
尐尐呅
2022/03/31
2K0
单细胞入门【2】:scRNA-seq测序数据的计算分析指南
综述:高维单细胞RNA测序数据分析工具(下)
当你的才华还撑不起你的野心时,请潜下心来,脚踏实地,跟着我们慢慢进步。不知不觉在单细胞转录组领域做知识分析也快两年了,通过文献速递这个栏目很幸运聚集了一些小伙伴携手共进,一起成长。
生信技能树jimmy
2020/05/14
1.6K0
生物医学研究和临床应用中单细胞RNA-seq数据分析指南
单细胞RNA测序(scRNA-seq)在生物医学研究中的应用,提高了对疾病发病机制的认识,并为新的诊断和治疗策略提供了有价值的见解。随着包括临床样本在内的高通量scRNA-seq数据的扩大,对这些大量数据的分析已经成为进入这一领域的研究人员的一个必须面对的前景。在这里,回顾了典型scRNA-seq数据分析的工作流程,包括原始数据处理和质量控制,适用于几乎所有scRNA-seq数据集的基本数据分析,以及应针对特定科学问题量身定制的高级数据分析。在总结每个分析步骤的当前方法的同时,还提供了软件和脚本的在线数据。对一些具体的分析任务和方法提出了建议和注意事项。
追风少年i
2022/12/08
1.9K0
生物医学研究和临床应用中单细胞RNA-seq数据分析指南
单细胞RNA-seq数据分析最佳实践(上)
Luecken MD, Theis FJ. Current best practices in single-cell RNA-seq analysis: a tutorial. Mol. Syst. Biol. 2019, 15: e8746.
生信技能树jimmy
2020/03/30
2.6K0
开源数据代码,学习如何通过单细胞多组学数据鉴定关键因子
◉ 研究设计和计算分析的示意图。3DG,三维基因组。◉ WNN 表示的单核 RNA 测序和单核 ATAC 测序数据投影到 UMAP 上,显示主要细胞类型。◉ 伴随的饼图展示了在主要协变量(性别、脑库、脑区、年龄组和细胞类型)中代表的细胞核比例。MSSM,西奈山医学院。◉ 基于最高平均表达量的前两个基因标记可视化其在主要细胞类型中的基因表达。◉ 主要细胞类型中基因表达与相应基因活性(由染色质可及性推导)之间的余弦相似度。◉ 使用方差分解方法分析协变量对基因表达(左,n = 16,661 基因)、染色质可及性(中,n = 181,432 峰值)和细胞类型组成(右,n = 10 种细胞类型)的解释方差。在每个小提琴图中,中心线表示中位数,箱子表示四分位距(IQR),而须线表示在 1.5× IQR 范围内的最高/最低值。超出第一和第三四分位数 1.5 倍 IQR 的点被视为异常值。
生信菜鸟团
2025/04/04
1000
开源数据代码,学习如何通过单细胞多组学数据鉴定关键因子
热点综述 | 高维单细胞RNA测序数据分析工具
scRNA-seq数据集通常包含由于不完全RNA捕获、PCR扩增偏差和/或特定于患者或样本的批次效应而产生的技术噪声,如何降低技术噪声对数据分析的影响?
尐尐呅
2022/04/01
8560
热点综述 | 高维单细胞RNA测序数据分析工具
单细胞RNA-seq数据分析最佳实践(下)
Luecken MD, Theis FJ. Current best practices in single-cell RNA-seq analysis: a tutorial. Mol. Syst. Biol. 2019, 15: e8746.
生信技能树jimmy
2020/03/27
3K0
重磅综述:三万字长文读懂单细胞RNA测序分析的最佳实践教程 (原理、代码和评述)
NGS系列文章包括NGS基础、转录组分析 (Nature重磅综述|关于RNA-seq你想知道的全在这)、ChIP-seq分析 (ChIP-seq基本分析流程)、单细胞测序分析 (重磅综述:三万字长文读懂单细胞RNA测序分析的最佳实践教程 (原理、代码和评述))、DNA甲基化分析、重测序分析、GEO数据挖掘(典型医学设计实验GEO数据分析 (step-by-step) - Limma差异分析、火山图、功能富集)等内容。
生信宝典
2021/12/31
2.7K0
重磅综述:三万字长文读懂单细胞RNA测序分析的最佳实践教程 (原理、代码和评述)
scMMO-atlas:单细胞多模态组学图谱和门户,用于探索细胞异质性和细胞动态
◉ 图1. scMMO-atlas的构建和数据总结。(A) scMMO-atlas构建方案。(B) 按物种、供体状况和组学方法对scMMO-atlas进行总结。(C) 按样本状况和组学方法分类的细胞数量。H,人类;M,小鼠;T2D,2型糖尿病;AHRF,急性低氧性呼吸衰竭;PD,帕金森病;CML,慢性髓系白血病;MTB,结核分枝杆菌;NHL,非霍奇金淋巴瘤。(D) 来自70个数据集的27种细胞组织或器官分布比例。(E) 不同组学方法下每个组织样本的总结。PBMC,外周血单核细胞;BAL,支气管肺泡灌洗液;AGM,主动脉-生殖腺-中肾;ESC,胚胎干细胞。(F) scMMO-atlas数据库结构。
生信菜鸟团
2025/04/04
780
scMMO-atlas:单细胞多模态组学图谱和门户,用于探索细胞异质性和细胞动态
热点综述 | 跨模态单细胞分析的最佳实践
跨模态的单细胞数据的可用性越来越高,推动了新的计算方法的发展,以帮助科研人员获得生物学见解。近日《Nature Reviews Genetics 》发表了一篇综述文章,总结了单模态和多模态单细胞数据分析的独立基准研究,为最常见分析步骤提供全面的最佳实践工作方案。
尐尐呅
2023/04/23
1K0
热点综述 | 跨模态单细胞分析的最佳实践
关于什么是单细胞测序的知识整理,ChatGPT会做的更好吗?
既然ChatGPT如此擅长查询和整理资料,那么关于什么是单细胞测序的知识整理,ChatGPT会做的更好吗?我先给出来一个学徒的知识整理,借花献佛给大家。然后大家可以自己玩一下ChatGPT,看看能不能做出来如此出色的整理。
生信技能树
2023/02/27
9160
关于什么是单细胞测序的知识整理,ChatGPT会做的更好吗?
对一篇单细胞RNA综述的评述:细胞和基因质控参数的选择
单细胞RNA测序技术的发展加深了我们对于细胞作为功能单元的理解,不仅能基于成百到成千上万个单细胞的基因表达谱得到新的结论,还能发现新的具有特异基因表达谱的细胞群(这在传统转录组测序数据中是很难发现的)。
生信宝典
2019/12/19
1.8K0
对一篇单细胞RNA综述的评述:细胞和基因质控参数的选择
空间组学 | NG | 人前列腺的空间转录组分析
◉ 队列1包括7名因膀胱癌接受根治性膀胱切除术患者的前列腺,每个前列腺根据解剖位置取样。所有样本均进行了BD Rhapsody单细胞核RNA测序。◉ 队列2由4名同样接受根治性膀胱切除术患者的前列腺组成,每位患者前列腺的外周区、移行区和中央区各取一个样本。这些样本随后进行了BD Rhapsody单细胞转录组测序、10x Genomics Multiome和10x Genomics Visium空间转录组测序。◉ 面板a使用BioRender.com创建。◉ b, 按主要细胞身份颜色编码的scRNA-seq(左)、snRNA-seq(中)和snATAC-seq(右)数据的UMAP图。◉ c, scRNA-seq和10x Multiome平台捕获的主要细胞类型的比例。ARC,调控因子和染色质分析;EC,内皮细胞;Epi,上皮细胞;Fib,成纤维细胞;ILC,先天淋巴细胞;SKMC,骨骼肌细胞。
生信菜鸟团
2025/04/26
880
空间组学 | NG | 人前列腺的空间转录组分析
NBT|45种单细胞轨迹推断方法比较,110个实际数据集和229个合成数据集
轨迹推断(Trajectory Inference,TI),是分析从千上万单细胞的组学数据中推断细胞发育轨迹的重要方法,也被称为伪时序分析 (pseudotime analysis),该方法根据细胞表达模式的相似性对细胞进行排序。这为应用单细胞转录组学、蛋白质组学和表观组学数据研究细胞内的动态过程,如细胞周期、细胞分化和细胞激活等,提供了新的契机。
生信宝典
2019/11/01
4.9K0
Nat. Commun. | Cellar一个交互式单细胞数据分析工具
本文介绍由美国卡内基梅隆大学的Ziv Bar-Joseph教授团队和加拿大麦吉尔大学健康中心的Jun Ding助理教授团队联合发表在 Nature Communications 的研究成果。细胞分类为高通量单细胞数据的主要挑战,在许多情况下,这种分配需要重复使用外部和补充数据源。为了提高跨大型联盟、平台和模态统一分配细胞类型的能力,作者开发了一种软件工具Cellar,可为分配和数据集比较过程中涉及的所有不同步骤提供交互式支持。作者讨论了由Cellar实现的不同方法,以及如何将这些方法用于不同的数据类型,如何组合互补的数据类型以及如何分析和可视化空间数据。作者通过使用Cellar注释几个来自多组学单细胞测序和空间蛋白质组学研究的HuBMAP数据集来展示Cellar的优势。
DrugAI
2022/06/10
6080
Nat. Commun. | Cellar一个交互式单细胞数据分析工具
Nat. Methods | Tangram利用深度学习和空间比对解析单细胞转录组
本文介绍由美国哈佛-麻省理工Broad研究所的Aviv Regev教授团队发表在 Nature Methods 的研究成果:本文作者提出了Tangram,一种将sc/snRNA-seq数据与从同一区域收集的各种形式的空间数据对齐的方法。Tangram可以处理来自多个形式的空间数据,包括MERFISH、STARmap、smFISH、空间转录组学(Visium)和组织学图像。Tangram可以映射任何类型的sc/snRNA-seq数据,包括多模态数据,例如来自SHARE-seq的数据。作者通过在视觉和躯体运动区的单细胞分辨率上重构全基因组解剖整合空间图,在健康小鼠脑组织上展示了Tangram。
DrugAI
2022/03/25
8680
Nat. Methods | Tangram利用深度学习和空间比对解析单细胞转录组
推荐阅读
相关推荐
综述:高维单细胞RNA测序数据分析工具(上)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档