面向对象7——抽象类

原创 2013年12月02日 00:22:41

抽象类

1.两个类DemoA,DemoB里面都有共性的功能,可以进行抽取。但是,如果功能的声明相同,但是功能的具体内容不同。这时,我们只对相同的功能声明进行抽取,而不是抽取功能的内容。

2.抽象类就是子类不断的向上抽取而来的,只抽取了子类的功能声明,而没有抽取子类的具体的功能内容。所以功能是抽象的,需要定义在抽象类中。

3.抽象类的特点:(1)抽象类和抽象方法必须用abstract关键字修饰。

               (2)抽象方法一定要存放在抽象类中。

               (3)抽象类不可以被实例化。也就是不可以通过该类建造对象。因为抽象                                        类建立对象后,调用抽象方法没有意义。

               (4)只有抽象类的子类将抽象类中的抽象方法全部覆盖掉,该子类就可以建立对象了。如果只是部分覆盖,那么该子类还是一个抽象类。

例如:abstract class Demo{

       Abstract void show();

   这是这个函数就看不懂,因为没有方法体。所以就需要被标识一下成看不懂的函数,就需要一个关键字abstract(抽象),当此类出现抽象方法后,该类也必须标识成抽象的。

}

抽象类什么时候定义?

当我们分析事物时,对对象进行描述时,其实就是不断把对象中的共性内容向上抽取。在抽取的过程中,发现对象具备相同的功能,但是功能的细节不同。这是在定义类时,该功能没有具体的实现,是由具体的对象来完成的。那么该功能就是抽象的。

抽象类的一些细节:

1.抽象类中是否有构造函数?

  有,只要是class定义的类,里面肯定有构造函数。抽象类中的构造函数,用于给予类提供实例化。其实抽象类和一般函数没什么区别。该怎么描述事物就怎么描述。只不过,有些功能,该是类中无法确定的内容,所以比普通类多了个抽象方法。

2.抽象类中是否可以不定义抽象方法?

  可以,只不过没有抽象方法的抽象类存在的意义仅仅是不让过该类创建对象。因为创建的没有意义。这种情况多在java awt中有具体的体现。这种情况不多见。

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

  1.final:如果方法被抽象就需要被覆盖,而final是不可以被覆盖的,所以冲突。

  2.private:如果函数私有化,子类无法直接访问,无法覆盖。

  3.static:静态不需要调用对象,类名即可直接调用抽象方法,而调用抽象方法没有意义。

子父类中覆盖的一些细节?

  1.子类覆盖父类必须要保证权限大于等于父类。(重点,一定要注意权限)

  2.静态覆盖静态。

面向对象基础指数(7)抽象类 接口

今天给大家带来了抽象类与接口、正所谓不懂得抽象的程序员不完全算是程序员 抽象类 一句话抽象类就是类的抽象 打个比方吧、下面有这么几个类 小猫类    小狗类      鸟类      鱼类 这四个...

7.面向对象--抽象类和接口

1.抽象类 方法只有声明没有实现时,该方法就是抽象方法,需要被abstract关键字修饰 特点         a.抽象方法必须定义在抽象类中,该类必须被abstract关键字修饰 b.抽象类不可以被...
  • TonyMor
  • TonyMor
  • 2017年11月11日 20:29
  • 53

Java面向对象——抽象类与接口

Java面向对象——抽象类与接口final 关键字1、final关键字在java中被称为完结器,表示最终的意思2、final能声明类、方法、属性:使用final声明的类不能被继承 使用final声明的...
  • miao_9
  • miao_9
  • 2017年04月07日 19:00
  • 164

java基础(六)——面向对象_继承、抽象类、接口

------- android培训、java培训、期待与您交流! ---------- 继承是面向对象三大特征之一,也是实现软件复用的重要手段。Java的继承具有单继承的特点,每个子类只有一个直...

黑马程序员——面向对象07(继承、final、抽象类、模版方法、接口)

——- android培训、java培训、期待与您交流! ———- 1.1:继承 1,继承是面向对象的一个重要特征。当多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中, ...

面向对象高级——final关键字的使用以及抽象类的基本概念

final关键字  final关键字在java中表示的是最终的意思。也可以成为完结器。 可以使用final关键字声明类、属性、方法: 使用final声明的类不能有子类; 使用final声明的方法不能被...

黑马程序员——Java基础---面向对象(继承_概述、关键字final、抽象类)(5) 分类: Java学习笔记

-----------android培训、java培训、java学习型技术博客、期待与您交流!------------  面向对象(继承_概述、关键字final、抽象类) 一、继承概述 ...

Java基础(极客)——13、Java面向对象-抽象类与接口

package com.zhh.java.chouxiangliejiekou; /**  * 1、Java final关键字的使用 1、final关键字在java中被称为完结器,表示最终的意思 ...

黑马程序员——Java面向对象之抽象类 接口 内部类笔记

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 三, 抽象类概述: 在Java中,一个没有方法体的方法应该定义为抽象方法, 而类中如果...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:面向对象7——抽象类
举报原因:
原因补充:

(最多只允许输入30个字)