码迷,mamicode.com
首页 > 编程语言 > 详细

Java学习 (十四)、面向对象编程(六)抽象类

时间:2016-03-18 21:50:53      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:

抽象的定义:抽象是把多个事物的共性的内容抽取出来,本质就是把我们关注的内容抽取出来。(比如:宝马,奔驰都属于汽车,汽车是抽象出来的概念);

抽象类:Java中可以定义没有方法体的方法,该方法由其子类来具体的实现。该没有方法体的方法我们称之为抽象方法,含有抽象方法的类我们称之为抽象类;

抽象方法特点

①   只有方法头没有方法体的方法称为抽象方法:

②   抽象方法用abstract来修饰;

③   抽象方法代表一种不确定的操作或行为;

④   抽象方法不能被调用;

抽象类的特点

①   定义中含有抽象方法的类叫抽象类;

②   抽象类用abstract来修饰;

③   抽象类代表一种抽象的对象类型;

④   抽象类不能被实例化;

⑤   抽象类中可以有具体方法,可以没有抽象方法;

 

//A是一个抽象类

public abstract class A{

           public void methodA(){

}

public abstract void methodB();

}

 

示例——根据给出的内容进行分析设计

①   需求:公司中所有的员工都有工号,姓名,薪水,工作;

②   教学总监除了员工所具备的特点以外,还有管理津贴;

③   对给出的需求进行数据建模;

 1 public class EmployeeDemo{
 2     public static void main(String []atgs){
 3         JavaTeacher teacher=new JavaTeacher(1,"张三",2000);
 4         teacher.work();
 5         Leader leader=new Leader(2,"李四",3000,10000);
 6         leader.work();
 7         
 8         //Employee emp=new Employee(3,"王五",4000);//抽象类不能被实例化
 9         
10         //抽象类也是父类,引用变量可以引用子类的对象
11         Employee teacher2=new JavaTeacher(4,"赵六",2500);
12         teacher2.work();        
13     }
14 }
15 
16 //抽象类
17 abstract class Employee{
18     
19     private int number;
20     private String name;
21     private double salary;
22     
23     public Employee(int number,String name,double salary){
24         this.number=number;//工号
25         this.name=name;//姓名
26         this.salary=salary;//薪水
27     }
28     
29     public void aa(){
30         //抽象类中可以带有实现的方法
31     }
32     
33     //抽象方法的声明
34     public abstract void work();
35 }
36 
37 //一旦一个类去继承了抽象类,那么这个类要么去实现抽象类中的抽象方法
38 //要么继续抽象下去
39 class JavaTeacher extends Employee{
40     public JavaTeacher(int number,String name,double salary){
41         super(number,name,salary);
42     }
43     
44     //抽象方法的实现
45     public void work(){
46         System.out.println("上Java课");
47     }
48 }
49 
50 class Leader extends Employee{
51     private double allowance;//津贴
52     public Leader(int number,String name,double salary,double allowance){
53         super(number,name,salary);
54         this.allowance=allowance;
55     }
56     
57     //抽象方法的实现
58     public void work(){
59         System.out.println("培训新员工");
60         System.out.println("设计教学课程");
61     }
62 }

 

Java学习 (十四)、面向对象编程(六)抽象类

标签:

原文地址:http://www.cnblogs.com/wzy330782/p/5293587.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!