---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ---------------------
抽象的概念:
抽象就是把一些事物的共性提炼出来,放到一个类中,把这些事物的不同之处交给子类去实现,比方说人都要吃东西,就可以给人一个吃东西的抽象方法,每个人在吃东西的时候就要自己确定到底吃什么,怎么吃,和谁吃。
java中的抽象
在java中抽象用abstract来表示,abstract可以修饰方法,也可以修饰类
- 修饰类的时候,这个类会成为一个抽象类,这个类不能生成对象实例,但是可以作为变量声明的类型,这里要提的一点在进行变量声明是,要养成一个习惯:多声明成超类,这样就时时刻刻在使用多态了,java系统就是靠多态撑起来的。
- 修饰方法的时候,这个方法就会成为抽象方法,只是被声明,没有被实现,什么叫实现,就是方法有{}这样的代码块。而抽象方法的{}直接用分号 ; 代替了。抽象方法定义的是一种标准:方法的功能,接收的参数等,抽象方法只能protected和public修饰的。因为其必须要能被子类访问并实现。
有抽象方法的一定是抽象类,但是抽象类中不一定要含有抽象方法,我们常用的WindowAdapter就是一个没有抽象方法的抽象类。这里说一下接口和抽象类的区别
- abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。
- 在abstract class 中可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在 interface中一般不定义数据成员),所有的成员方法都是abstract的。
- abstract class和interface所反映出的设计理念不同。其实abstract class表示的是"is-a"关系,interface表示的是"like-a"关系。
- 实现抽象类和接口的类必须实现其中的所有方法。抽象类中可以有非抽象方法。接口中则不能有实现方法。
- 接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值。
- 抽象类中的变量默认是 friendly 型,其值可以在子类中重新定义,也可以重新赋值。
- 接口中的方法默认都是 public,abstract 类型的。而abstract class中方法可以是protected abstract的,因为抽象类的下家全是子类,而interface的下家是所有类
抽象类的作用
- 强迫子类复写一些功能。
- 抽象类该如何描述事物,就如何描述事物,只不过,该事物出现了一些未实现的方法,需要明确实现。但是无法定义主体。通过抽象方法来实现。需要子类实现。
- 抽象类比一般类多了抽象函数,就是在类中可以定义抽象方法。不可实例化。
- 抽象类在公司通常不是由程序员定义的,而是由项目经理或者某个模块得设计人员。设计抽象类得原因通常只有一个:为了规范方法名。咱们都知道,抽象类必须要继承,不然没法用,作为模块设计者,可以把让底层程序员直接用得方法直接调用,而一些需要让程序员覆盖后自己做得方法则定义称抽象方法。
附上一个抽象类的使用例子
使用抽象类的时候一定要规范命名,让人家一看就明白了这个类是用来干嘛的
abstract class SayByeBye{ protected abstract void sayByeBye(); } class ChineByeBye extends SayByeBye{ protected void sayByeBye() { System.out.println("再见"); } } class JapanByeBye extends SayByeBye{ protected void sayByeBye() { System.out.println("sa yo na la"); } } class USByeBye extends SayByeBye{ protected void sayByeBye() { System.out.println("See you"); } }
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net
相关推荐
黑马程序员 - Java基础教学 - 08 - 面向对象(4)-多态.doc
计算机后端-Java-Java核心基础-第15章 面向对象07 06. 抽象类与抽象方法的使用.avi
计算机后端-Java-Java核心基础-第17章 异常处理 02. 复习:抽象类.avi
抽象类使的是extends关键字,表示一个类只能继承一个父类,但是接口使用的是implements,一个类可以同时实现多个接口,但是此时子类就必须同时覆写好多个接口中的抽象方法。 (2). 既然定义中已经明确说明了接口是...
计算机后端-Java-Java核心基础-第15章 面向对象07 12. 抽象类的课后练习.avi
计算机后端-Java-Java核心基础-第15章 面向对象07 10. 创建抽象类的匿名子类对象.avi
Java程序设计课程实验9-继承和抽象类Java程序设计课程实验9-继承和抽象类Java程序设计课程实验9-继承和抽象类Java程序设计课程实验9-继承和抽象类Java程序设计课程实验9-继承和抽象类Java程序设计课程实验9-继承和...
面向对象程序设计与实践 第五章 Java抽象类和接口 面向对象程序设计与实践课程组 面向对象程序设计与实践-Java抽象类和接口[33页]全文共33页,当前为第1页。 教学目标 教学方式 重点知识 学习目标 1.熟悉抽象类的...
抽象类和接口的区别 在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持...
java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例...
(3) 抽象类可以但不是必须有抽象属性和抽象方法,但是一旦有了抽象方法,就一定要把这个类声明为抽象类 (4) 具体派生类必须覆盖基类的抽象方法 (5) 抽象派生类可以覆盖基类的抽象方法,也可以不覆盖。如果不覆盖,...
计算机后端-Java-Java核心基础-第15章 面向对象07 07. 抽象的应用场景举例.avi
Java抽象类和抽象方法
在Java语言中,abstract class和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,...
用C++语言实现的面向抽象类接口编程的具体案例,代码实现socket通信和产品的加密,所有代码均经过测试
计算机后端-Java-Java核心基础-第15章 面向对象07 09. 抽象性的练习:基本操作.avi
【完整课程列表】 ... Java基础入门教程 Java编程技术01 java概述(2学时)(共27页).ppt Java基础入门教程 Java编程技术02 Java编程基础...Java基础入门教程 Java编程技术14 补充--对多态、抽象和接口的理解(共24页).ppt
掌握Java中抽象类和抽象方法的定义; 掌握Java中接口的定义,熟练掌握接口的定义形式以及接口的实现方法。 二、实验内容 1、按照要求使用Java进行编码。 编写一个抽象类Shape,其中有抽象方法getArea()和...
何为抽象方法和抽象类 马克-to-win java视频 abstract
何为抽象方法和抽象类 马克-to-win java视频 abstract的介绍