------- android培训、 java培训、期待与您交流! ----------
/**关于抽象类
抽象类:笼统类
没有足够的信息对该事物进行描述,那么该描述对应的类就是个抽象类
如:
狗: 行为:狗叫
狼: 行为:狼叫
共性:犬科 基本功能:叫
abstract class 犬科
{
bastract void 叫(); //无具体叫,所以无方法体,进行抽象化,方法抽象,类就要抽象
}
class 狗 extends 犬科
{
void 叫()
{
System.out.println("汪汪");
}
}
class 狼 extends 犬科
{
void 叫()
{
System.out.println("嗷嗷");
}
}
----------
abstract class **
{
bastract void 方法();
}
抽象方法:无方法体,方法后加“;” ,用abstract修饰,并且该类需要用abastract修饰,即抽象类
abstract void show();
<一>
抽象类和一般类
相同:
1用于描述事物
2可以定义属性和行为,及构造函数
不同:
1:一般类不可以定义抽象函数,抽象类可以
2:一般类可以被实例化, 抽象类不可以
3:一般类可以被继承,也可以不被继承
抽象类一定要被继承,子类覆盖所有的抽象方法后,子类才可以被实例化
<二>
抽象类一定父类?
是
抽象类是否有构造函数?
有,是给子类对象提供初始化动作的
抽象类中是否可以不定义抽象方法?
可以的,抽象类中可以没一个抽象方法(目的:不让其创建对象)如windowAdapter
抽象关键字不能和哪些关键字共存?
final;private;static
final 定义类了后就不能被继承,所以不能修饰抽象类,定义常量不能被改,定义方法不能覆盖
prviate 修饰后就不能被覆盖,所以不能修饰抽象类。
static可以直接被类名调用,不用创建对象,所以不能修饰抽象类
<三>
@author 8888
@version v1.1
程序员:
属性:姓名,工号,薪水
行为:工作内容
项目经理:
属性:姓名,工号,薪水,奖金
行为:工作内容
程序员和项目经理不存在所属关系,但是有共性
雇员:
属性:姓名,工号,薪水
行为:工作内容
----------------------
*/
class Demo30
{
public static void main(String[] args)
{
System.out.println("hello");
}
}
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 Programmar extends Employee
{
Programmar(String name,String id,double pay)
{
super(name,id,pay);
}
public void work()
{
System.out.println("code");
}
}
class Manager extends Employee
{
private double bonus;
Manager(String name,String id,double pay,double bonus)
{
//调用父类,相当于this();
super(name,id,pay);
this.bonus=bonus;
}
public void work()
{
System.out.println("manager");
}
}