/*
抽象類與抽象方法
特點:
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();
}
}
我的學習之路-JAVA-04
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.