葵花宝典(更好的理解抽象类)
package lesson01;
public class demo01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//葵花宝典(更好的理解抽象类)
葵花宝典 yue = new 岳不群();
yue.自宫();
}
}
abstract class 葵花宝典{
public void 自宫() {
}
}
class 岳不群 extends 葵花宝典{
public void 自宫() {
System.out.println("用剑。。");
}
}
class 林平之 extends 葵花宝典{
public void 自宫() {
System.out.println("用刀。。。");
}
}
抽象类练习员工案例
package lesson03;
public class demo01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
/*面试题
* 使用抽象类练习员工的案例
* 程序员包括3个属性:姓名,工号以及工资
* 经理除了包含程序员的属性外,另外还有一个奖金属性
* 请使用继承的思想设计出程序和经理类,
* 要求类中提供必要的方法进行属性访问
*/
Programmer pro1 = new Programmer("小刘",0001,190900);
pro1.say();
System.out.println("========");
Mannager pro2 = new Mannager("小贾",00033,143443,"134324");
pro2.say();
}
}
abstract class Employee{
String name;
int id;
double salary;
public abstract void say();
public Employee(String name, int id, double salary) {
super();//提供了有参的构造方法系统就不提供午餐的构造方法了,此时就要你自己写出来
this.name = name;
this.id = id;
this.salary = salary;
}
public Employee() {
super();//无惨的构造方法
// TODO Auto-generated constructor stub
}
}
class Programmer extends Employee{
@Override
public void say() {
// TODO Auto-generated method stub
System.out.println("我叫"+name);
System.out.println("我的工号是"+id);
System.out.println("我的月工资"+salary);
}
public Programmer() {
super();
// TODO Auto-generated constructor stub
}
public Programmer(String name, int id, double salary) {
super(name, id, salary);
// TODO Auto-generated constructor stub
}
}
class Mannager extends Employee{
String bonus;
@Override
public void say() {
// TODO Auto-generated method stub
System.out.println("我叫"+name);
System.out.println("我的工号是"+id);
System.out.println("我的月工资"+salary);
System.out.println("我的奖金"+bonus);
}
public Mannager() {
super();
// TODO Auto-generated constructor stub
}
public Mannager(String name, int id, double salary,String bonus) {
super(name, id, salary);
this.bonus=bonus;
// TODO Auto-generated constructor stub
}
}