JAVA基础--db10_java多态-内部类

本文深入探讨了多态的概念及其在面向对象编程中的优势,包括提高代码扩展性和重用性。同时,文章详细阐述了内部类的特性、生成方式及其在类设计中的作用,通过实例展示了如何利用多态和内部类解决实际编程问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多态:


多态的好处:提高了代码的扩展性,前期定义的代码可以使用后期的内容(前期定义了一个动物,后面来了一个猪,猪属于动物,可以将猪作为动物传入从而使用)

//一只鸡去吃饭,后来鸡多了,抽成鸡类,让鸡去吃饭;再后来让了猪,再抽取,变成动物,让动物去吃饭。这就是多态的好处

多态的弊端:前期定义的内容不能使用后期子类的特有内容。

多态的前提:1:必须要有关系(继承/实现)

           2:必须要有覆盖

注意:如果为了提高扩展性,用父类型创建更好;如果为了使用子类特有功能向下转型。

多态的特点:


成员变量:编译和运行都参考左边

成员函数:编译看左边运行看右边

静态函数:编译和运行都参考左边;其实静态根本不该讨论,因为可以类名调用

内部类:


生成的class字节码文件


生成3个。外部类访问内部类,必须在外部类中创建一个方法,方法中创建内部类的对象才能访问
内部类一般用于类的设计:分析事物时,发现该事物描述中还有事物,而且这个事物还在访问被描述事物的内容

类似:铁扇公主和孙悟空

其他类直接访问内部类中的成员:

Outer.Inner  in =  new  Outer().new Inner();

//解释new后面的内容,外部类对象.成员

如果内部类中定义了静态成员,那么该内部类必须是静态的

几种内部类的书写格式:


还有局部内部类,匿名内部类

局部内部类中访问局部变量,变量必须是final

匿名内部类:就是内部类的简写格式

前提:内部类必须继承或者实现一个外部类或者接口

匿名内部类:其实就是一个匿名子类对象

格式:

      new 父类(接口或类){子类内容};

public classHelloWorld {

   public static voidmain(String[] args) {

      newOuter().method();

   }

}

abstract class Demo{

   abstract void show();

}

class Outer{

   int num = 4;

/* class Inner extends Demo{//内部类

      void show(){

         System.out.println(num);

      }

   }*/

   public void method(){

      new Demo(){

         void show(){

            System.out.println("run");

         }

      }.show();

   }

}

情景一:当函数的参数是接口类型时,而且接口中的方法不超过三个

可以用匿名内部类作为实际参数进行传递

里面有多个方法时的调用:new其父类


面向对象,对象的初始化过程:1-6的顺序

 

 

我在常规转录组分析中,已经把亲本和杂交种都比对到参考基因组了,生成了对应的bam文件。我要对所有的杂交种组合进行等位基因特异性表达(ASE)分析,鉴定出正常和处理条件下的ASE基因,严格按照这篇文献的方法。 9个亲本为:A632、C72、Dan340、J724、J92、Mo17、PH207、Ye478、Z58 7个杂交种为:A632_PH207、A632_Ye478、C72_Ye478、C72_Z58、Dan340_J724、Dan340_J92、Mo17_Ye478 1、我有比对好的亲本和杂交种的bam文件,存放在/public/home/xumiaoyun/wy/cxgg/rnaseq/4_hisat2_results文件夹下面,包括正常(文件名包括-C-)和盐碱处理后的(文件名包括-T-),分别有1~2个生物学重复,我的文件夹/public/home/xumiaoyun/wy/cxgg/rnaseq/4_hisat2_results内容如下: A632-C-1.Hisat_aln.sorted.bam A632-T-1.Hisat_aln.sorted.bam C72-C-1.Hisat_aln.sorted.bam C72_Ye478-T-2.Hisat_aln.sorted.bam Dan340_J724-C-1.Hisat_aln.sorted.bam Dan340_J92-T-1.Hisat_aln.sorted.bam J92-C-1.Hisat_aln.sorted.bam Mo17_Ye478-C-1.Hisat_aln.sorted.bam PH207-T-1.Hisat_aln.sorted.bam Z58-C-1.Hisat_aln.sorted.bam A632-C-2.Hisat_aln.sorted.bam A632-T-2.Hisat_aln.sorted.bam C72-T-1.Hisat_aln.sorted.bam C72_Z58-C-1.Hisat_aln.sorted.bam Dan340_J724-C-2.Hisat_aln.sorted.bam Dan340_J92-T-2.Hisat_aln.sorted.bam J92-T-1.Hisat_aln.sorted.bam Mo17_Ye478-C-2.Hisat_aln.sorted.bam PH207-T-2.Hisat_aln.sorted.bam Z58-C-2.Hisat_aln.sorted.bam A632_PH207-C-1.Hisat_aln.sorted.bam A632_Ye478-C-1.Hisat_aln.sorted.bam C72-T-2.Hisat_aln.sorted.bam C72_Z58-C-2.Hisat_aln.sorted.bam Dan340_J724-T-1.Hisat_aln.sorted.bam Dan340-T-1.Hisat_aln.sorted.bam Mo17-C-1.Hisat_aln.sorted.bam Mo17_Ye478-T-1.Hisat_aln.sorted.bam Ye478-C-1.Hisat_aln.sorted.bam Z58-T-1.Hisat_aln.sorted.bam A632_PH207-C-2.Hisat_aln.sorted.bam A632_Ye478-C-2.Hisat_aln.sorted.bam C72_Ye478-C-1.Hisat_aln.sorted.bam C72_Z58-T-1.Hisat_aln.sorted.bam Dan340_J724-T-2.Hisat_aln.sorted.bam J724-C-1.Hisat_aln.sorted.bam Mo17-C-2.Hisat_aln.sorted.bam Mo17_Ye478-T-2.Hisat_aln.sorted.bam Ye478-C-2.Hisat_aln.sorted.bam Z58-T-2.Hisat_aln.sorted.bam A632_PH207-T-1.Hisat_aln.sorted.bam A632_Ye478-T-1.Hisat_aln.sorted.bam C72_Ye478-C-2.Hisat_aln.sorted.bam C72_Z58-T-2.Hisat_aln.sorted.bam Dan340_J92-C-1.Hisat_aln.sorted.bam J724-T-1.Hisat_aln.sorted.bam Mo17-T-1.Hisat_aln.sorted.bam PH207-C-1.Hisat_aln.sorted.bam Ye478-T-1.Hisat_aln.sorted.bam A632_PH207-T-2.Hisat_aln.sorted.bam A632_Ye478-T-2.Hisat_aln.sorted.bam C72_Ye478-T-1.Hisat_aln.sorted.bam Dan340-C-1.Hisat_aln.sorted.bam Dan340_J92-C-2.Hisat_aln.sorted.bam J724-T-2.Hisat_aln.sorted.bam Mo17-T-2.Hisat_aln.sorted.bam PH207-C-2.Hisat_aln.sorted.bam Ye478-T-2.Hisat_aln.sorted.bam 2、参考的基因组文件路径为/public/home/xumiaoyun/wy/cxgg/rnaseq/maize_v5_data/Zm-B73-REFERENCE-NAM-5.0.fa,内容格式如下: >chr1 TCATGGCTATTTTCATAAAAAATGGGGGTTGTGTGGCCATTTATCATCGACTAGAGGCTCATAAACCTCACCCCACATAT GTTTCCTTGCCATAGATTACATTCTTGGATTTCTGGTGGAAACCATTTCTTGCTTAAAAACTCGTACGTGTTAGCCTTCG GTATTATTGAAAATGGTCATTCATGGCTATTTTTCGGCAAAATGGGGGTTGTGTGGCCATTGATCGTCGACCAGAGGCTC ATACACCTCACCCCACATATGTTTCCTTGTCGTAGATCACATTCTTGGATTTCTGGTGGAGACCATTTCTTGGTCAGAAA TCCGTAGGTGTTAGCCTTCGATATTATTGAAAATGGTCGTTCATGGCTATTTTCGACAAAAATGGGGGTTGTGTGGCCAT TGATCATCGACCAGAGGCTCATACACCTCACCCCACATATGTTTCCTTGCCATAGATCACATTCTTGGATTTCTGGTGGA GACCATTTCTTGGTCAAAAATCCGTAGGTGTTAGCCTTCGGTATTATTGTAAATGGTCATTCATGGCTATTTTCGACAAA AATGGGGGTTGTGTGGCCATTGATCATCGACCAGAGGCTCATACACCTCACCCCACATATGTTTCCTTGCCATAGATCAC ATTCTTGGATTTATGGTGGAGACCATTTCTTGGTCAAAAATCCGTAGGTGTTAGCCTTCGGTATTATTGTAAATGGTCAT 3、基因组GTF文件路径为/public/home/xumiaoyun/wy/cxgg/rnaseq/maize_v5_data/maize_v5.gtf,内容格式如下: chr1 NAM transcript 34617 40204 . + . transcript_id "Zm00001eb000010_T001"; gene_id "Zm00001eb000010" chr1 NAM exon 34617 35318 . + . transcript_id "Zm00001eb000010_T001"; gene_id "Zm00001eb000010"; chr1 NAM exon 36037 36174 . + . transcript_id "Zm00001eb000010_T001"; gene_id "Zm00001eb000010"; chr1 NAM exon 36259 36504 . + . transcript_id "Zm00001eb000010_T001"; gene_id "Zm00001eb000010"; chr1 NAM exon 36600 36713 . + . transcript_id "Zm00001eb000010_T001"; gene_id "Zm00001eb000010"; chr1 NAM exon 36822 37004 . + . transcript_id "Zm00001eb000010_T001"; gene_id "Zm00001eb000010"; chr1 NAM exon 37416 37633 . + . transcript_id "Zm00001eb000010_T001"; gene_id "Zm00001eb000010"; chr1 NAM exon 38021 38482 . + . transcript_id "Zm00001eb000010_T001"; gene_id "Zm00001eb000010"; chr1 NAM exon 38571 39618 . + . transcript_id "Zm00001eb000010_T001"; gene_id "Zm00001eb000010"; chr1 NAM exon 39701 40204 . + . transcript_id "Zm00001eb000010_T001"; gene_id "Zm00001eb000010"; 请给我生成对应的shell分析脚本和R可视化脚本,要求简洁易懂,运行不报错,效率高且无误。 注意: 软件直接进行调用即可,无需加载; shell脚本要求运行效率高,批量运行,节约时间,输出R可视化所需的文件即可。 R可视化要求输出的基因list格式规范,输出的图片均为PDF发表级图片(无网格线)。 /public/home/xumiaoyun/wy/cxgg/rnaseq/maize_v5_data/Zm-B73-REFERENCE-NAM-5.0.fa.fai是基因组索引文件。 请新建并生成结果文件在/public/home/xumiaoyun/wy/cxgg/rnaseq/aseg_analysis/results中。
最新发布
08-07
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值