1.抽象函数的语法特征2.抽象类的语法特征3.抽象类的作用 抽象函数 只有函数的定义,没有函数体的函数被称为抽象函数: abstract void func(); 抽象类 使用abstract定义的类称为抽象类. abstract class Person{} 注意:1.抽象类不能够生成对象:2.如果一个类当中包含有抽象函数,那么这个类必须被声明为抽象类.3.如果一个类当中没有抽象函数,这个类也可以被声明为抽象类. 下面来用一个例子说明下: Person.java: abstract class…
Java基础(十一) Stream I/O and Files 1. 流的概念 程序的主要任务是操纵数据.在Java中,把一组有序的数据序列称为流. 依据操作的方向,能够把流分为输入流和输出流两种.程序从输入流读取数据,向输出流写出数据. 文件 输入流 输出流 文件 内存 -------------> Java程序 ------------------> 内存 键盘 控制台 | | 数据源 数据目的地 Java I/O系统负责处理程序的输入和输出.I/O类库位于java.io包中,它对各种常见…
Java基础十一--多态 一.多态定义 简单说:就是一个对象对应着不同类型. 多态在代码中的体现: 父类或者接口的引用指向其子类的对象. /* 对象的多态性. class 动物 {} class 猫 extends 动物 {} class 狗 extends 动物 {} 猫 x = new 猫(); 动物 x = new 猫();//一个对象,两种形态. 猫这类事物即具备者猫的形态,又具备着动物的形态. 这就是对象的多态性. 简单说:就是一个对象对应着不同类型. 27 多态在代码中的体现: 28…
面向对象变量 局部变量和成员变量区别 区别一:定义的位置不同 定义在类中的变量是成员变量 定义在方法中或者{}语句里面的变量是局部变量 区别二:在内存中的位置不同 成员变量存储在对内存的对象中 局部变量存储在栈内存的方法中 区别三:声明周期不同 成员变量随着对象的出现而出现在堆中,随着对象的消失而从堆中消失 局部变量随着方法的运行而出现在栈中,随着方法的弹栈而消失 区别四:初始化不同 成员变量因为在堆内存中,所有默认的初始化值 局部变量没有默认的初始化值,必须手动的给其赋值才可以使用. 基本类型…
枚举类型Enum的简介 1.什么是枚举类型 枚举类型: 就是由一组具有名的值的有限集合组成新的类型.(即新的类). 好像还是不懂,别急,咱们先来看一下 为什么要引入枚举类型 在没有引入枚举类型前,当我们想要维护一组 常量集合时,我们是这样做的,看下面的例子: class FavouriteColor_class{ public static final int RED = 1; public static final int BLACK = 3; public static final int…
导读:前两天闲着没事儿,看了本书,然后写了点代码,在接口里面写了默认方法实现,因为书上说这个特性是从java8开始的,我还特地给测了一下java7. 没过几天,就有一个技术分享会,刚好也是讲java8特性,然后,顿时就觉得世界观被毁了!怎么回事呢,看下文吧: 还记得,当年我刚面试的时候,面试官问我接口和抽象类什么区别,我张口就来了传说中的标准答案,那时候是解释不清楚接口和抽象类各自的用途的和来源的,就记得我说了很重要的一条就是:抽象类里面可以有方法实现,而接口是不可以的.哈哈哈哈,java8出来…
抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法:它只有声明,而没有具体的实现.抽象方法的声明格式为: 抽象方法必须用abstract关键字进行修饰.如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰.因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象. 下面要注意一个问题:在<JAVA编程思想>一书中,将抽象类定义为“包含抽象方法的类”,但是后面发现如果一个类不包含抽象方法,只是用abstract修饰的话也是抽象类.也就是…
抽象类(abstract)     当编写一个类时,时常会为该类定义一些方法,这些方法的使用用以描述该类的行为方式,那么这些方法都有具体的方法体.但是在某些情况下,某个父类只是知道子类应该包含怎样的方法,但是无法精确的知道这些子类是如何实现这些方法,例如定义一个GetTime类,该类提供了一个计算某一段程序运行时间的gettime方法,但是无法知道具体运行什么方法体,这时就需要使用抽象方法来实现了. 抽象类概念 当多个类中出现相同功能,但是功能主体不同,这时候可以进行向上抽取,只抽取功能定义,而…
抽象类 (1)如果多个类中存在相同的方法声明,而方法体不一样,我们就可以只提取方法声明. 如果一个方法只有方法声明,没有方法体,那么这个方法必须用抽象修饰. 而一个类中如果有抽象方法,这个类必须定义为抽象类. (2)抽象类的特点 A:抽象类和抽象方法必须使用abstract修饰 B:抽象类不能被实例化 C:抽象类有构造方法,用于子类实例化使用 D:如果一个类是抽象类,那么,继承它的子类 要么是抽象类. 要么重写所有抽象方法. (3)抽象类的成员特点 A:成员变量 可以是变量,也可以是常量 B:构…
任何不谈使用方法的空理论都是耍流氓 使用场景 · 如果你拥有一些方法并且想让它们中的一些有默认实现,那么使用抽象类吧(Java1.8中接口也可以这么做了) · 如果你想实现多重继承,那么你必须使用接口.由于Java不支持多继承,子类不能够继承多个类,但可以实现多个接口.因此你就可以使用接口来解决它. · 如果基本功能在不断改变,那么就需要使用抽象类.如果不断改变基本功能并且使用接口,那么就需要改变所有实现了该接口的类. 具体的使用 · 接口更多的是在系统架构设计方法发挥作用,主要用于定义模块之间…