Java学习个人备忘录之抽象类】的更多相关文章

抽象类 特点:1. 方法只有声明没有实现时,该方法就是抽象方法,需要被abstract修饰,抽象方法必须定义在抽象类中.该类必须也被abstract修饰2. 抽象类不可以被实例化. 为什么?  因为调用抽象方法没意义.3. 抽象类必须有其子类覆盖了所有的抽象方法后,该子类才可以实例化,否则,这个子类还是抽象类. abstract class 犬科 { abstract/*抽象*/ void show(); }//抽象方法所在的类也必须的抽象的. class 狗 extends 犬科 { void…
[14-10]面向对象-抽象类的产生 /* 描述狗,行为,吼叫. 描述狼,行为,吼叫. 发现他们之间有共性,可以进行向上抽取. 当然是抽取他们的所属共性类型,犬科. 犬科这类事物,都具备吼叫行为,但是具体怎么叫,是不确定的,是由具体子类来明确的. 这时在描述犬科时,发现了有些功能不具体,这些不具体的功能,需要在类中标识出来,通过Java关键字abstract(抽象). 定义了抽象函数的类也必须被abstract关键字修饰,被abstract关键字修饰的类是抽象类 */ /* 抽象类的特点. 1,…
abstract class AbsDemo { abstract void show1(); abstract void show2(); } 当一个抽象类中的方法都是抽象的时候,这时可以将该抽象类用另一种形式定义和表示-----接口  interface 定义接口使用的关键字不是class,是interface. 对于接口当中常见的成员:而且这些成员都有固定的修饰符1. 全局常量:public static final2. 抽象方法:public abstract 由此得出结论,接口中的成员…
当多个类中出现相同功能,但是功能主体不同时,我们可以向上抽取,只抽取功能定义,而不抽取功能主体. 抽象类的特点 抽象方法一定在抽象类中. 抽象方法和抽象类都必须被abstract关键字修饰. 抽象类不可以用new创建对象,因为调用抽象方法没有意义. 抽象类中的抽象方法要被使用,必须由子类复写所有的抽象方法后,才能建立子类对象调用.(如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类.) abstract class Student { abstract void study(); abstr…
线程间通讯多个线程在处理同一资源,但是任务却不同. class Resource { String name; String sex; } //输入 class Input implements Runnable { Resource r; Input(Resource r) { this.r = r; } public void run() { int i = 0; while(true) { synchronized(r) //保证两个线程用同一个锁 { if (i==0) { r.name…
进程:正在进行中的程序(直译). 线程:就是进程中一个负责程序执行的控制单元(执行路径) 一个进程中可以有多个执行路径,称之为多线程. 一个进程中至少要有一个线程. 开启多个线程是为了同时运行多部分代码. 每一个线程都有自己运行的内容.这个内容可以称为线程要执行的任务. 多线程的好处:解决了多部分同时运行的问题. 多线程的弊端:线程太多回到效率的降低. 其实应用程序的执行都是cpu在做着快速的切换完成的.这个切换是随机的. jvm启动时就启动了多个线程,至少有两个线程可以分析的出来. 1.执行m…
概述 异常:是在运行时期发生的不正常情况. 在java中用类的形式对不正常情况进行了描述和封装对象. 描述不正常的情况的类,就称为异常类. 以前正常流程代码和问题处理代码相结合,现在将正常流程代码和问题处理代码分离,提高阅读性. 其实异常就是java通过面向对象的思想将问题封装成了对象. 用异常类对其进行描述.不同的问题用不同的类进行具体的描述. 问题很多,意味着描述的类也很多.将其共性进行向上抽取,形成了异常体系. 最终问题(不正常情况)就分成了两大类 Throwable:无论是error,还…
继承的好处1. 提高了代码的复用性.2. 让类与类之间产生了关系,给第三个特征多态提供了前提. java中支持单继承,不直接支持多继承,但对C++中的多继承机制进行改良.java支持多层继承. C继承B,B继承A,就会出现继承体系. 当要使用一个继承体系时:1. 查看该体系中的顶层类,了解该体系的基本功能.2. 创建体系中的最子类对象,完成共能的使用. 什么时候定义继承呢?当类与类之间存在着所属关系的时候,就定义继承,xxx是yyy中的一种,  xxx extends yyy. class Pe…
文档注释 单行注释用 // 多行注释有两种,第一种是 /* 内容 */,第二种是/** 内容 */. 这两种多行注释的区别是/** 内容 */这种注释可以生成一个该文件的注释文档,下面是演示代码. ArrayTool.java文件 /** 建立一个用于操作数组的工具类,其中包含着常见的对数组操作的函数,如: 最值,排序等. @author 纸人 @version v1.0 */ //ArrayTool.java文件 public class ArrayTool //加上public后,文件名和类…
下面主要讲解一个针对数组操作的工具类. a.java -- 工具类文件 //按理来说要先编译本文件, 然后再编译主函数 class ArrayTool { /* 获取整型数组的最大值 */ public int getMax(int[] arr) { int maxIndex = 0; for (int x=1; x<arr.length ; x++ ) { if (arr[x]>arr[maxIndex]) { maxIndex = x; } } return arr[maxIndex];…