21.黑马程序员-抽象类与抽象方法
来源:互联网 发布:linux打包jar文件 编辑:程序博客网 时间:2024/06/02 06:55
------- android培训、java培训、期待与您交流! ----------
1.概念:- 含有abstract修饰符的class即为抽象类。
- 当多个类中出现相同功能,但是功能主体( {} 中的函数代码)不同,可以进行向上抽取。这时,只抽取功能定义(函数定义),而不抽取功能主体。这种只有函数定义的函数叫抽象函数,它所在的类就是抽象类。
如何保证一个类不被实例化哪?只要将这个类声明为抽象类即可。使用 abstract关键字即可,如下:
public abstract class Employee { private String name; private double salary; //TBC}
2.抽象类的特点:
- 抽象类为什么不能实例化?因为安全,抽象类中可能有没有方法体的方法,调用时会发生错误。
- 抽象方法 、 抽象类 都使用abstract关键字修饰。
抽象类中可以没有抽象方法,但是抽象方法一定在抽象类中
- abstract 可以修饰类和方法,代表未实现的方法或者不可实现的类。类的不可实现就是用该类的方法无法创建对象。
- 抽象类中的方法要被使用,必须由子类复写其所有的抽象方法后,建立子类对象调用。只复写部分抽象方法还是抽象类。
3.抽象类的例子:
父类Employee中定义了一个方法:
public void setSalary(double salary,double rate) { this.salary = salary*(1+rate); }
但是如果子类Sales和Trainer虽然都需要实现这个业务逻辑,但是实现方式 却都不相同,如Sales如下:
public void setSalary(double salary, double rate) { this.salary = salary*(1+2*rate); }
Trainer类的如下:
public void setSalary(double salary, double rate) { this.salary = salary*(1+0.5*rate); }
4.抽象方法的定义
public abstract void setSalary(double salary,double rate) ;
5.抽象类的作用:
- 强迫子类复写一些功能。
- 抽象类该如何描述事物,就如何描述事物,只不过,该事物出现了一些未实现的方法,需要明确实现。但是无法定义主体。通过抽象方法来实现。需要子类实现。
- 抽象类比一般类多了抽象函数,就是在类中可以定义抽象方法。不可实例化。
- 抽象类在公司通常不是由程序员定义的,而是由项目经理或者某个模块得设计人员。设计抽象类得原因通常只有一个:为了规范方法名。咱们都知道,抽象类必须要继承,不然没法用,作为模块设计者,可以把让底层程序员直接用得方法直接调用,而一些需要让程序员覆盖后自己做得方法则定义称抽象方法。
6.注意:
- 抽象类可以不定一抽象方法,这样做仅仅是不让该类创建对象。
- 没有抽象变量。
需要注意的是,抽象方法是没有方法体的,声明后直接使用;结束。
抽象方法和抽象类之间的关系是:
1) 抽象类中不一定有抽象方法
2) 有抽象方法的类一定是抽象类
因此,如果一个类继承的父类中有抽象方法,那么子类必须实现其抽象方法 ,否则子类也必须声明为抽象类。
很多初学者会不太理解抽象类的作用,尤其抽象方法,觉得既然连实现逻辑 都没有,又何必声明?抽象类,抽象方法都是Java中非常重要的概念,抽象类是 多个子类共同特征的体现,抽象方法是子类共同行为的规范。
- 黑马程序员---抽象类与抽象方法
- 21.黑马程序员-抽象类与抽象方法
- 黑马程序员--抽象方法与接口
- 黑马程序员_抽象类与模板方法设计模式
- 黑马程序员_抽象类和抽象方法
- 黑马程序员--抽象类
- 黑马程序员--抽象类
- 黑马程序员----抽象类
- 黑马程序员---抽象类
- 黑马程序员-抽象类
- 黑马程序员----抽象类
- 黑马程序员--抽象类与接口
- 黑马程序员----继承与抽象类
- 黑马程序员----抽象类、与接口
- 黑马程序员:抽象类与接口
- 黑马程序员_010_抽象类与接口
- 黑马程序员----------------------抽象类与接口
- 黑马程序员_抽象类与接口
- 感情经不起:距离、时间、亲情
- linux中的likely和unlikely
- Linux上安装JDK+Tomcat
- 安卓虚拟机,让安卓在电脑上运行
- 马云说
- 21.黑马程序员-抽象类与抽象方法
- 爱情淡了也不要说分手
- Java中各种修饰符与访问修饰符的说明(稍谈内部类)
- 中国需要“信用卡式”的生活:把明天的钱,拿到今天来用
- 英语练习72 Running a Bookstore
- 1.el表达式入门
- OMRON NB7触摸屏添加.h头文件
- 各种类型的文件在ASP.NET中对应的输入类型
- 国际歌