07 面向对象(下)

作者:thoughtInShare 出处:http://www.cnblogs.com/thoughtInShare 欢迎转载,也请保留这段声明。谢谢!

1.抽象类

之所以引进抽象类的概念是因为某些情况下,父类只需要告诉子类应该包含什么样的方法,但是没有必要实现这些具体方法,而由子类来是实现;

抽象方法使用abstract来修饰,含有抽象方法的类只能定义因此,为抽象类,但是抽象方法可以没有抽象类;

因此,抽象类无法使用new关键字来创建对象;只能当做作父类被其他子类继承;以发挥多态的优势,使得程序更加灵活;抽象类作为子类的模板,避免子类设计的随意性;

(1)父类可以只定义需要使用的某些方法,把不能实现的部分定义为抽象方法,留给子类实现;

2.接口

接口不包含普通方法,接口里的所有方法都是抽象方法,是更彻底的抽象;

(1)定义

[修饰符] interface 接口名 extends 父接口1,父接口2...

{

//...

}

修饰符可以是public或者省略;

接口定义只是一种规范,因此接口里不能包含构造器和初始化块定义。接口里可以包含Field(只能是常量),方法(只能是抽象实例方法),内部类(包含内部接口和枚举)定义;

(2)接口支持多继承,一个接口可以有多个直接父接口

3.枚举类

实例有限且固定的类称作枚举类;

(1)关键字,enum

(2)定义时需要显式列出所有的枚举值;

(3)构造函数使用private修饰;

时间: 2024-11-20 07:43:27

07 面向对象(下)的相关文章

黑马程序员——Java基础---面向对象(下)

一.概述 面向对象除了封装.继承和多态三大特征之外,还有其他的特性,例如abstract抽象.interface接口等,抽象类主要作为多个类的模板,而接口则定义了多类应该遵守的规范,final关键字让java实现不可变类,让系统更加安全. 二.正文 1.构造器和初始化块 1.1 构造器 构造器是一种特殊方法,这个特殊方法用于创建实例时执行初始化,是创建对象的重要途径,如果程序员没有为JAVA类提供任何构造器,则系统会为这个类提供一个无参数的构造器,这个构造器的执行体为空,不做任何事情.无论如何,

黑马程序员-Java面向对象下《二》

                         ------- android培训.java培训.期待与您交流! ---------- 1.继承的概念 面向对象的特点之一,可以实现对类的复用.可以通过以下两种方法实现 a.合成/聚合关系(包含其他类):将一个类当作另一个类的属性. b.派生类:一个类继承另一个类,实现继承的类称为派生类,被继承类称为父类,基类,超类. 父类的成员方法和成员变量被子类继承,但是父类的构造方法没有被继承. 在Java中只支持单继承,和C++多继承不一样. 2.sup

Python 面向对象(下)

本篇博客承接自Python 面向对象(上) 四. 继承,实现,依赖,关联,聚合,组合 待补充 参考资料: https://www.cnblogs.com/chinxi/p/7349768.html 五. 特殊成员 待补充 参考资料: 类中的特殊成员方法 待补充 参考资料: https://www.cnblogs.com/chinxi/p/7349768.html 五. 特殊成员 待补充 参考资料: 类中的特殊成员方法 六. issubclass,type,isinstence各自的用法和区别 1

(一)Python入门-6面向对象编程:07面向对象三大特征(封装、继承、多态)-继承

一:面向对象三大特征介绍 Python是面向对象的语言,也支持面向对象编程的三大特性:继承.封装(隐藏).多态. 封装(隐藏) 隐藏对象的属性和实现细节,只对外提供必要的方法.相当于将“细节封装起来”,只 对外暴露“相关调用方法”. 通过前面学习的“私有属性.私有方法”的方式,实现“封装”.Python 追求简洁的语法,没有严格的语法级别的“访问控制符”,更多的是依靠程序员自觉实现. 继承 继承可以让子类具有父类的特性,提高了代码的重用性. 从设计上是一种增量进化,原有父类设计不变的情况下,可以

07.面向对象基础

面向对象思维方法 1.首先确定谁来做,其次确定怎么做: 2.首先考虑整体,其次考虑局部: 3.首先考虑抽象,其次考虑具体 创建类的方法 属性:成员变量,主要用于描述类的状态 方法:成员方法,主要用于描述类的行为 类的表示方法 生成对象的方法 对象的使用方法 使用对象调用变量和函数 1.对象 .变量 2.对象 . 函数()        classDog{ String name; int age; String color; void jump(){ System.out.println("ju

第07章下 中断和8253

计算机中的时钟分为两类: 内部时钟:是有处理器固件结构决定的,在出厂就设定好了, 无法改变,处理器内部元件工作速度最快,所以内部时钟的时间单位粒度比较细,以纳秒为单位. 外部时钟:是处理器中的内部原件,如运算器,控制器的工作时序,主要用于控制.同步内部工作的不掉,内部时钟有晶体振荡器产生.简称晶振.位于主板上,其频率经过分频之后就是主板的外频.处理器和南北桥之间的通信基于外频.Intel处理器将外频乘某个倍数之后称为主频.处理器取指令执行指令所消耗的时钟周期都是基于主频的. 外部时钟指的是处理器

面向对象下

1 final 关键字修饰变量,方法,类,系统不允许为final变量重新赋值,子类不允许覆盖父类final方法,final类不能派生子类.通过final实现不可变类,不可变类让系统更安全. 2 抽象类主要作为多个类的模版,接口定义了多个类应该遵守的规范, 3 enum用于创建枚举类,枚举类是一种不能自由创建对象的类,枚举类的对象在定义类时已经固定下来.适应与季节,这样的类,创建的实例有限且确定 4 为了解决8种基本数据类型变量不能当成Object类型变量使用,Java提供了包装类的概念,为基本类

Java-No.07 SpringMVC下HTML内容导出PDF并下载到本地

1.通过iText生成pdf文件(包含中文)参照:http://my.oschina.net/sanji/blog/277704 1)下载jar包: CORE 包:http://sourceforge.net/projects/itext/files/ XML  包:http://sourceforge.net/projects/xmlworker/files/ 2)前端页面 <input type="button" style="position:absolute;t

python面向对象(下)

继承 继承描述了基类的属性如何"遗传"给派生类.一个子类可以继承它的基类的任何属性,不管是数据属性还是方法. 创建子类的语法看起来与普通(新式)类没有区别,一个类名,后跟一个或多个需要从其中派生的父类: class SubClassName (ParentClass1[, ParentClass2, ...]): 'optional class documentation string' class_suite 实例 class Parent(object): # define par