案例一、
class Demo_AbstractEmployee {
public static void main(String[] args) {
Coder c=new Coder("小敏","0012",999.9); //创建程序员对象
c.work(); //调用方法
Manager m=new Manager("小闽","0012",999.9,3457); //创建项目经理对象
m.work(); //调用方法
}
}
/*
对程序员类进行设计
程序员包括3个属性姓名,员工号,工资
经理除了有与程序猿相同的属性还有一个奖金的属性,姓名,员工号,工资,奖金
请使用
*/
abstract class Employee { //抽象员工类
private String name; //私有属性名字
private String id; //私有属性员工号
private double salary; //私有属性工资
public Employee(){}//定义空参方法
public Employee(String name,String id,double salary){ //定义有参方法
this.name=name;
this.id=id;
this.salary=salary;
}
public void setName(String name){ //设置姓名
this.name=name;
}
public String getName(){ //获取姓名
return name;
}
public void setId(String id){ //设置id 员工号
this.id=id;
}
public String getId(){ // //获取id 员工号
return id;
}
public void setSalary(double salary){ //设置员工工资号
this.salary=salary;
}
public double getSalary(){ // //获取工资
return salary;
}
public abstract void work(); //定义行为工作work
}
class Coder extends Employee {
public Coder(){} //空参构造
public Coder(String name,String id,double salary){ //有参构造
super(name,id,salary);
}
public void work(){ //设置行为方法
System.out.println("我的姓名是:"+super.getName()+" 我的工号是:"+this.getId()+" 我的工资是:"+this.getSalary()+" 我的目标是好好敲代码");
}
}
class Manager extends Employee {
private double bonus;
public Manager(){} //空参构造
public Manager (String name,String id,double salary,double bonus){ //有参构造
super(name,id,salary);
//sthis.bonus=bonus;
}
public void work(){ //设置行为方法
System.out.println("我的姓名是:"+this.getName()+" 我的工号是:"+this.getId()+" 我的工资是:"+this.getSalary()+" 我的奖金是:"+this.bonus+" 我的工作内容是项目管理");
}
}
案例二、
class Demo_Teacherbstract {
public static void main(String[] args) {
BaseTeacher b=new BaseTeacher(32,"mr li");
b.teach();
}
}
/*
* 具体事物:基础班老师BaseTeacher,就业班老师
* 共性:姓名,年龄,讲课。
*/
abstract class Teacher {
private int age; //定义属性年龄并私有化
private String name; //定义属性姓名并私有化
public Teacher(){} //空参构造
public Teacher(int age,String name){ //有参构造
this.age=age;
this.name=name;
}
public void setAge(int age){ //设置年龄
this.age=age;
}
public int getAge(){ //获取年龄
return age;
}
public void setName(String name){ //设置姓名
this.name=name;
}
public String getName(){ //获取姓名
return name;
}
public abstract void teach(); //构造行为
}
class BaseTeacher extends Teacher {
public BaseTeacher(){} //空参构造
public BaseTeacher(int age,String name){ //有参构造
super(age,name); //继承父类的属性
}
public void teach(){
System.out.println("教授基础班的课程");
}
}
案例三、
class Demo_Superman {
public static void main(String[] args) {
Person p=new Superman();
System.out.println(p.name);
p.谈生意();
Superman sm=(Superman)p; //调用Person p=new Superman()中的new Superman 相当于Superman sm=new Superman();
sm.fly();
}
}
class Person {
String name="john";
public void 谈生意(){ //定义人的共有方法“谈生意”
System.out.println("谈生意");
}
}
class Superman extends Person {
String name="superman";
public void 谈生意(){ //定义Superman的行为方法
System.out.println("谈几亿元的大生意");
}
public void fly(){ //定义Superman独有的行为方法
System.out.println("内裤外穿飞出去救人");
}
}
案例四、
class Demo_extendcat {
public static void main(String[] args) {
Cat c=new Cat(4,"花色");
System.out.println("猫的腿的条数是:"+c.getLeg()+" 猫的毛色是:"+c.getColor());
c.eat();
c.catchMouse();
Dog d=new Dog(4,"黄色");
System.out.println("狗的腿的条数是:"+d.getLeg()+" 猫的毛色是:"+d.getColor());
d.eat();
d.lookHome();
}
}
/*
猫狗的案例
属性:毛的颜色,腿的个数
行为:吃饭
猫特有的行为是:抓老鼠catchMouse
狗特有的行为是:看家lookHome
*/
class Animal{ //创建一个类
private String color; // 属性颜色
private int leg; //属性腿的个数
public Animal(){} //创建无参方法
public Animal(int leg,String color){ //创建有参方法
this.leg=leg;
this.color=color;
}
public void setColor(String color) { //设置颜色
this.color=color;
}
public String getColor(){ //获取颜色
return color; //输出颜色
}
public void setLeg(int leg) { //设置颜色
this.leg=leg;
}
public int getLeg(){ //获取颜色
return leg;
}
public void eat(){ //创建行为
System.out.println("动物的共有行为是吃饭");
}
}
class Cat extends Animal { //定义子类 猫
public Cat(){}
public Cat(int leg,String color){
super(leg,color); //继承父类的属性
}
public void eat(){ //行为猫吃鱼
System.out.println("猫吃鱼");
}
public void catchMouse(){
System.out.println("猫爱抓老鼠");
}
}
class Dog extends Animal {
public Dog(){} //定义无参方法
public Dog(int leg,String color){ //定义有参方法
super(leg,color); //继承父类的属性
}
public void eat(){ //定义狗的行为
System.out.println("狗吃骨头");
}
public void lookHome(){
System.out.println("狗看家");
}
}
|
|