java学习之路12抽象类

1.为什么使用抽象类

当编写一个类时,我们往往会为该类定义一些方法,这些方法是用来描述该类的功能具体实现方式,那么这些方法都有具体的方法体。
但是有的时候,某个父类只是知道子类应该包含怎么样的方法,但是无法准确知道子类如何实现这些方法。比如一个图形类应该有一个求周长的方法,但是不同的图形求周长的算法不一样。那该怎么办呢?
分析事物时,发现了共性内容,就出现向上抽取。会有这样一种特殊情况,就是方法功能声明相同,但方法功能主体不同。那么这时也可以抽取,但只抽取方法声明,不抽取方法主体。那么此方法就是一个抽象方法。
描述JavaEE工程师:行为:工作。
描述Android工程师:行为:工作。
JavaEE工程师和Android工程师之间有共性,可以进行向上抽取。抽取它们的所属共性类型:研发部员工。由于JavaEE工程师和Android工程师都具有工作功能,但是他们具体工作内容却不一样。这时在描述研发部员工时,发现了有些功能(工作)不具体,这些不具体的功能,需要在类中标识出来,通过java中的关键字abstract(抽象)。
当定义了抽象函数的类也必须被abstract关键字修饰,被abstract关键字修饰的类是抽象类。

2.什么是抽象方法

方法使用了abstract修饰!没有方法体!必须要子类来重写!必须定义在抽象类中或接口中!不能和private (私有) final(不能继承) static(修饰类)结合使用!

3.什么是抽象类

包含抽象方法的类,必须设计成抽象类!

4.抽象类的特点

抽象类不能实例化 只能被子类继承

抽象类中可以有普通方法也可以由抽象方法

子类继承父类之后必须实现父类的抽象类的抽象方法,除非子类也是抽象方法

5.啥时候使用抽象类

如果有一个功能,不同的子类对他的实现方法都不同,那么此时就要使用抽象类,把这个方法封装成抽象方法

例如喂动物  喂猫喂狗都是喂动物,但是喂的食物不同

所有可以喂食物这个方法写成抽象方法

然后猫和狗都实现

然后通过多态使用就行

猜你喜欢

转载自blog.csdn.net/qq_34491508/article/details/81477578
今日推荐