黑马程序员-抽象方法的继承

来源:互联网 发布:java final是实例域吗 编辑:程序博客网 时间:2024/06/07 04:42

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------


当多个类中出现了相同功能但功能主体不同 ,这时可以进行向上抽取,这时,只抽取功能定义,而不抽取功能主体;

 

抽象:看不懂。

抽象类特点:

1:抽象方法一定在抽象类中。

2:抽象方法和抽象类必须被abstract关键字修饰

3:抽象类不可以用new创建对象,因为抽象方法没意义

4:抽象类中的方法要被覆盖,必须有子类函数复写所有的抽象方法后,建立子类的对象调用;

    如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类;

 

抽象类和一般类没有什么太大不同

该怎么描述就怎么描述

 

 

 

 

 

假如我们在开发一个系统是需要对员工进行建模,员工包含3个属性;

姓名、工号以及工资。经理也是员工,除了含有员工的属性外,还有一个奖金属性,请使用继承的思想设计员工类和经理类。

要求类中提供必要的方法进行属性访问;

 

员工类:name id pay

经理类:继承了员工,并有自己特有的bonus.

 

[java] view plaincopy
  1. abstract class Employee  
  2. {  
  3.     private String name;  
  4.     private String id;  
  5.     private double pay;  
  6.   
  7.     Employee (String name,String id,double pay)  
  8.     {  
  9.         this.name=name;  
  10.         this.id =id;  
  11.         this.pay=pay;  
  12.     }  
  13.     public abstract void work();  
  14. }  
  15. class Manager extends Employee  
  16. {  
  17.     private int bonus;  
  18.     Manager(String name,String id,double pay,int bonus)  
  19.     {  
  20.         super(name,id,pay);  
  21.         this.bonus=bonus;  
  22.     }  
  23.     public void work()  
  24.     {  
  25.         System.out.println("manager work");  
  26.     }  
  27. }  
  28. class pro extends Employee//普通员工  
  29. {  
  30.     pro(String name,String id,double pay)  
  31.     {  
  32.         super(name,id,pay);  
  33.     }  
  34.     public void work()  
  35.     {  
  36.         System.out.println("pro work");  
  37.     }  
  38. }  
  39. class AbstractDemo  
  40. {  
  41.     public static void main(String[] args)  
  42.     {  
  43.         new Manager("lisi","909",923.7,234).work();  
  44.         new pro("lisi","909",923.7).work();  
  45.     }  
  46. }  

0 0