我的学习之路-JAVA-04

/*
抽象类与抽象方法
特点:
	1.抽象方法定义在抽象类中,必须被abstract修饰
	2.抽象类不能被实例化,因为调用抽象方法没有意义
	3.抽象类必须有其子类覆盖了所有的抽象方法后,该子类才可以被实例化,否则这个子类还是抽象类 

细节:
	1.抽象类虽然不能被实例化,但是也有构造函数,以为可以给子类对象初始化

	2.抽象类中可以不定义抽象函数,目的是不让该类创建对象,但是很少见,如AWT的适配器对象就是这样的

	3.abstrastic不可与private,static, final共同存在

	4.抽象类一定是一个父类


*/


/*
抽象类练习:
	
	某公司有程序员和项目经理,程序员有姓名,工号,工资属性,有工作行为
	项目经理有有姓名,工号,工资,奖金属性,有工作行为
	为他们进项建模

*/

abstract class Employee
{
	private String name;
	private String num;
	private double pay;

	Employee(String name, String num, double pay)
	{
		this.name = name;
		this.num  = num;
		this.pay = pay;
	}

	public abstract void work();
	public void show()
	{
		System.out.println(this.name);
		System.out.println(this.num);
		System.out.println(this.pay);
	}

}

class Programmer extends Employee
{
	Programmer(String name, String num, double pay)
	{
		super(name, num, pay);
	}

	public void work()
	{
		System.out.println("程序员工作。。。");
	}
}

class Manager extends Employee
{
	double prize;
	Manager(String name, String num, double pay, double prize)
	{
		super(name, num, pay);
		this.prize = prize;
	}

	public void work()		
	{
		System.out.println("经理工作。。。");
	}

	public void show()
	{
		super.show();
		System.out.println(this.prize);
	}
}

class AbstractDemo
{
	public static void main(String[] args)
	{
		Programmer a = new Programmer("ming","12345",8000);
		a.work();
		a.show();

		Manager b = new Manager("fei","56789",10000,3000);
		b.work();
		b.show();
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章