一:题目
1.员工类Employee:
(1)私有成员变量:姓名,年龄,工资
(2)提供无参,有参构造
(3)成员方法:work()方法——员工工作
2.程序员类Coder:
(1)继承Employee父类
(2)提供无参,有参构造
(3)成员方法:重写work()方法——姓名为张三,年龄为22,工资为15000的程序员正在编写代码
(4)自己独有的方法——发疯
3.测试类Test
二:提示
1.super://调用父类的构造方法
2.重写:子类根据需要实现父类的方法
三:代码
Employee.java
public class Employee {private String name;private int age;private double salary;protected Employee(){}protected Employee(String name, int age, double salary) {this.name = name;this.age = age;this.salary = salary;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public double getSalary() {return salary;}public void setSalary(double salary) {this.salary = salary;}public void work(){System.out.println("员工工作");}
}
Coder.java
public class Coder extends Employee {public Coder(){}public Coder(String name,int age,double salary){super(name, age, salary);//调用父类的构造方法}//重写work方法@Overridepublic void work() {System.out.println(String.format("姓名为%s,年龄为%d,工资为%f的员工正在编写代码",getName(),getAge(),getSalary()));}public void crazy(){System.out.println(String.format("%s已经疯了",getName()));}
}
Test.java
public class Test {public static void main(String[] args) {Employee c = new Coder("小李",25, 7500);//向上转型work(c);special(c);}public static void work(Employee e){e.work();//运行时多态}public static void special(Employee e){if(e instanceof Coder){Coder coder=(Coder)e;//向下转型coder.crazy();}}}