第七天继承之抽象

抽象类的产生:

分析事物时,发现了共性的内容,就会出向上的抽取,就会发生一种特殊的情况,就是方法的功能,但方法的主体不同,这个时候也可以抽取,但只能抽取方法的声明,不抽取方法的主体,这就是一个抽象方法.

比如猫和狗都还是动物,都会叫,但他们的叫声不同,这个时候就可以只抽取叫这个方法出来,而不必写怎么叫,这个方法就是抽象方法.

抽象方法:

只有方法声明,而没有具体的方法.java中的抽象方法用abstract修饰.

方法名后面直接跟一个分号,而不是花括号

例如:Public abstract 返回类型 方法名(参数);

凡是没有方法体的方法必须使用关键字abstract修饰

凡是含有抽象方法的类就是抽象类

抽象类:

抽象类: 抽象类就是不能被实例化的类,通常作为一个类的最顶层的父类,用底层实现具    体的事物,顶层表示共性,包含抽象方法的类必须声明为抽象类,也可以不含有任    和抽象方法.

抽象类定义:abstract class 类名{};

抽象类的修饰符:必须为public或者protected,缺省的情况下默认为public

抽象类不能被实例化,不能new 原因: 如果可以new出来了,就可以调用方法,而抽象方 法没有主体,根本就没法运行

抽象类的使用:定义继承抽象类,将抽象方法进行重写,创建子类的对象.(如果子类没有重  写所有的父类抽象方法那么子类也是抽象方法)

特点

抽象类和抽象方法都必须要被abstract修饰

抽象类不一定有抽象方法()

抽象方法一定在抽象类中

不能new出抽象类的对象,但可以定义一个抽象类的引用(抽象类也可以实现多态)

只有重写了抽象类的所有抽象方法,器子类才能被穿件否则子类还是一个抽象类最后必 须有一个类来实现抽象方法

细节

抽象类可以没有抽象方法,有什么意义呢,不让这个类创建对象,方法可以直接让子类去 使用(适配器设计模式).

Abstract 不可以与paivate 共存 因为私有方法无法继承也就不存在覆盖.Final后面学 Static后面学

原文地址:http://blog.51cto.com/10760006/2156374

时间: 2024-11-13 09:18:32

第七天继承之抽象的相关文章

面向对象(重载、封装、继承、抽象)

一.方法重载:1.两个函数同名,就互相构成方法的重载关系2.重载的函数,必须跟其他函数之间具有不同的参数类型或参数个数注意:“Ctrl+Shift+空格键”可以查看重载的方法 二.封装1.类的字段:类里面是可以直接定义变量的,这些变量就叫类的字段,也叫成员变量.2.类的属性:是一种特殊的字段,用来为其他字段传输数据,具备两个方法3.封装字段的方法:(1)通过在字段上右键点击“重构”“封装字段”“确定”实现(2)读访问器get { return Name; } 写访问器set { if(value

嵌入式linux C++语言(七)——继承与派生

嵌入式linux C++语言(七)--继承与派生 一.继承 在C++编程中软件可重用性(software reusability)是通过继承(inheritance)机制来实现的.类的继承,是新的类从已有类那里得到已有的特性.或从已有类产生新类的过程就是类的派生.原有的类称为基类或父类,产生的新类称为派生类或子类. 派生类的声明:class 派生类名:[继承方式] 基类名{派生类成员声明:};    一个派生类可以同时有多个基类,这种情况称为多重继承,派生类只有一个基类,称为单继承. 继承方式规

JavaScript中易犯的小错误-------常见错误七:原型继承问题

JavaScript中易犯的小错误-------常见错误七:原型继承问题 很大一部分的js开发者都不能完全掌握原型的继承问题.下面具一个例子来说明:BaseObject = function(name) {if(typeof name !== "undefined"){ this.name = name; }else{ this.name = 'default' } };这段代码看起来很简单.如果你有name值,则使用它.如果没有,则使用 ‘default’:var firstObj

JavaOO封装、继承、抽象总结

JavaOO 封装 类的组成 属性 方法 信息的隐藏 四种访问修饰符 private 私有权限,仅本类中可以访问 default 默认权限,只能在同一个包类访问 protected 受保护的权限,只能在同一个包类或者不同包类的子类中访问 public 公共权限,在所有地方都可以访问 方法的实现 必须有公共无参构造 必须有私有属性提供的,符合命名规范的get/set方法 继承 必须是is a 关系 关键字extands,java中的继承是单继承结构 一个子类有且只有一个父类 构造方法不会被继承 在

第七节 继承、抽象类和接口

继承的概述 代码示例: class Person{ // 父类 String name; int age; char sex; String idcard; } class Students extends Person{ //子类 继承 父类的属性 public void study(){ System.out.println("好好学习"); } } class Worker extends Person{ //子类 继承 父类的属性 /* 我们通过继承的方式,可以省略掉Worke

封装 继承 多态 抽象的一点点理解

1.抽象 抽象是人们认识事物的常用方法,比如地图的绘制.抽象的过程就是如何简化.概括所观察到的现实世界,并为人们所用的过程. 抽象包括两个方面:过程抽象和数据抽象.过程抽象把一个系统按功能划分成若干个子系统,进行"自顶向下逐步求精"的程序设计.数据抽象以数据为中心,把数据类型和施加在该类型对象上的操作作为一个整体(对象)来进行描述,形成抽象数据类型ADT. 2.封装 封装是面向对象编程的特征之一,也是类和对象的主要特征.封装将数据以及加在这些数据上的操作组织在一起,成为有独立意义的构件

黑马程序员--java基础------继承,抽象,接口

-----------android培训.java培训.java学习型技术博客.期待与您交流!------------  继承 一.概述         继承是面向对象的一个重要特征.当多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继那个类即可.这时,多个类可以称为子类,单独的这个类称为父类或者超类. 这样类与类之间就存在了继承的关系.子类可以直接访问父类中的非私有的属性和行为.在代码中通过extends关键字表示继承关系.例: class

Java基础---继承、抽象、接口

一.概述         继承是面向对象的一个重要特征.当多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继那个类即可.这时,多个类可以称为子类,单独的这个类称为父类或者超类.例如:猫和豹子都是猫科动物,那么就可以说描述猫这个对象创建的类,是子类:而描述猫科动物这个对象创建的类,就是父类. 这样类与类之间就存在了继承的关系.子类可以直接访问父类中的非私有的属性和行为.在代码中通过extends关键字表示继承关系.例: class Sonexte

C/C++程序基础 (七)继承和多态

多态 编译时多态:重载 运行时多态:虚函数.根据运行时的类别获取正确的虚指针,从而定位正确的虚函数. 虚函数 虚函数指针:指向虚函数表.多重继承则含有多个基类的虚函数指针. 虚函数表:函数指针集合.普通继承,子类沿用父类的虚函数表,可以修改基类的虚函数表. 注意:虚函数依赖虚指针,虚指针位于对象内存空间.因此,多态在构造函数之后. 多重继承 优点:使用多个基类的接口.基类构造顺序与继承列表一致,与初始化列表无关. 问题:冗余基类导致的二义性. 解决方案:虚继承 虚继承 vitual class