您的位置:首页 > 编程语言 > Java开发

JavaSe基础(15)-- abstact

2016-03-31 11:38 1151 查看

abstract (抽象)

abstract是java的关键字之一,可以用来修饰方法、类

abstract修饰的方法称为抽象方法

abstract修饰的类称为抽象类

抽象方法

只有方法声明,没有方法体的方法叫做抽象方法

格式

[修饰符]   abstract  返回值数据类型  方法名称([参数])  ;




注意:

必须以分号结尾, 只能定义在抽象类中

抽象类

所有的对象都是通过类来描绘的,但并不是所有的类都能描绘出具体的对象

如果一个类没有足够的信息描绘出对象,那么这个类就叫做抽象类

格式

[修饰符] abstract class 类名{  }




注意:

抽象类不可以实例化,需要继承后使用

继承抽象类,需要实现所有的抽象方法

抽象类中的抽象方法不能为private

示例:

雇员示例:
需求:公司中程序员有姓名,工号,薪水,工作内容。
项目经理除了有姓名,工号,薪水,还有奖金,工作内容。
对给出需求进行数据建模。

分析:
在这个问题领域中,先找出涉及的对象。
通过名词提炼法。
程序员:
属性:姓名,工号,薪水、
行为:工作。
经理:
属性:姓名,工号,薪水,奖金。
行为:工作。

程序员和经理不存在着直接继承关系,

但是程序员和经理却具有共性内容。
可以进行抽取。因为他们都是公司的雇员

可以将程序员和经理进行抽取.建立体系.
//描述雇员。

abstract class Employee
{
private String name;
private String id;
private double pay;
Employee(String name,String id,double pay)
{
this.name = name;
this.id = id;
this.pay = pay;
}

public abstract void work();

}

//描述程序员。
class Programmer extends Employee
{
Programmer(String name,String id,double pay)
{
super(name,id,pay);
}
public void work()
{
System.out.println("code...");
}
}

//描述经理。
class Manager extends Employee
{
private int bonus;
Manager(String name,String id,double pay,int bonus)
{
super(name,id,pay);
this.bonus = bonus;
}
public void work()
{
System.out.println("manage");
}
}


1、抽象类与抽象方法的关系

包含抽象方法的类一定为抽象类

抽象类不一定包含抽象方法

2、普通方法与抽象方法的区别



3、抽象类与普通类的区别

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: