什么是抽象类,之所以说抽象就是具体的反义词喽~抽象离我们最近的距离也就是初中的时候学过的美术课,抽象画派。拿一桶画彩就这么往画布上一泼,那就是抽象。那么java世界当中什么是抽象呢?我们再拿动物还有狗的这个例子来讲吧,因为这个非常的好理解。比如说,你可以说狗吃饭吧,然后小狗狗就去吃饭了。那么你能说,动物你去吃饭吧?这个就搞的我们有点迷糊了,动物怎么吃饭,动物是一个类的概括。就向你去菜市场买鸡吃,你冲老板说:我来买个动物。动物只是个概念而不是一个具体到某一个具体的类别的动物,这里动物这个概念就是抽象的,我们并不能具体知道,别人的所指是一个具体的什么东西。还有,我们在一个类当中,比如拿动物这个类来说吧,定义一个吃的方法,但是这个方法,并没有必要具体的定义实现细节,因为动物一个睡觉的动作是不确定的,马可能会站着睡,狗趴着睡,各种睡法,你根本不能够确定具体的实现细节,那么这里直接抽象就好了,怎们抽象,那么这里就引入了抽象类和方法的关键字:abstract。上述例子用java代码来描述的话就是:

 abstract class Animal
{ abstract void eat(); } class Dog extends Animal
{ void eat()
{ System.out.print("I eat grass and meat"); } }

这里有几点需要注意的事情:

1、抽象方法被abstract关键字修饰之后,就不能再有方法体了。

2、一个类当中如果有一个方法是抽象的,那么这个类必须是抽象的;但是,如果一个类是抽象的,那么这个类中不一定有抽象的方法。

3、如果一个类继承了一个父类,但是这个父类当中有一个方法是抽象的,如果这个类没有重新覆盖并且实现这个方法体,那么这个类也是抽象的。

4、抽象类不能够被实例化。当我们试图去实例化一个抽象类的时候,会报错。

抽象类细节:

1、抽象类可以有构造函数么?

  可以,因为虽然构造方法抽象类自身是不能够使用的,但是可以供其子类来使用。

2、抽象类可以不定义抽象方法么?

 可以。这样的目的是防止,抽象类被直接使用。

3、抽象关键字不可以和哪些关键字共存?

  private、final、static

4、抽象类和一般类的区别?

  一般类可以被实例化、抽象类不能够被实例化;

  一般类当中只能有具体方法,不能够有抽象方法;

  抽象类必须被abstract关键字修饰

  抽象类必定是父类

  一般类是对一个事物充分的描述,而抽象类可能是非充分的描述

5、抽象类一定是个父类么?

  肯定是个父类,如果抽象类想被使用的话,他必须被继承且实现其中所有的抽象方法。

最新文章

  1. android 拔打电话功能
  2. ng-style 的坑 - 对性能的影响
  3. IE下载时提示无法下载,重试后成功
  4. 第一个servlet小例子
  5. Hadoop概念学习系列之常见的分布式文件系统(二十六)
  6. mongoDB中的连接池(转载)
  7. ajax GET和POST请求web api 的几种方式
  8. cocos2d/-x 用CCRenderTexture为一个CCLabelTTF创建阴影。
  9. VSTO之旅系列(二):创建Excel解决方案
  10. Java面试准备之探究集合
  11. OSGI target环境配置过程
  12. 第一次跑eureka
  13. IO 流读取文件时候出现乱码 文件编码格式问题 怎么转换解决方法
  14. C#学习-静态
  15. Java SE之String,字符串和子字符串的存储与区别
  16. 用Maven构建Mahout项目
  17. 第15章 高并发服务器编程(1)_非阻塞I/O模型
  18. js string 和 json 互转
  19. Chrome JS断点调试技巧
  20. centos7 安装java+tomcat

热门文章

  1. RedHat7安装Nginx及第三方模块
  2. codeforces 148D Bag of mice(概率dp)
  3. 项目打包 tomcat部署
  4. IIS配置不正确可能导致“远程服务器返回错误: (404) 未找到"错误一例。
  5. NFC手机
  6. Android eclipse - aapt.exe has stopped working.
  7. 额定能量不得超过160Wh, 等同是多少mAh电池容量?
  8. 关于Apple设备私有的apple-touch-icon属性详解
  9. Vive开发教程汇总
  10. winform C#屏幕右下角弹出消息框并自动消失