一、抽象就是没有具体的内容
3种动物的移动方式不能在动物类中写,所有动物类和方法都是抽象化处理,就不写具体的实现
抽象类是把父类设定为抽象类,再定义抽象方法,然后再让子类继承父类,去实现抽象方法。
package day09;
public abstract class Animal {
public abstract void test();
public abstract void move();
}//只要有一个抽象方法,类必须为抽象类
class Dog extends Animal{
@Override
public void test() {
}
@Override
public void move() {
System.out.println("狗的移动方式是跑");
}
}
class Fish extends Animal{
@Override
public void test() {
}
@Override
public void move() {
System.out.println("鱼的移动方式是游");
}
}
abstract class Bird extends Animal{//抽象类可以继承抽象类
@Override
public void test() {
}
public abstract void move();
}
Employee
package day09;
public abstract class Employee {
public Employee(){
}
int id;
String name;
double salary;
public abstract void work();
}
class CommonEmployee extends Employee{
public void setCommonEmployeeInfo(int id,String name,double salary){
super.id=id;
super.name=name;
super.salary=salary;
}
public void getCommonEmployeeInfo(){
System.out.println(super.id);
System.out.println(super.name);
System.out.println(super.salary);
}
@Override
public void work() {
System.out.println("普通员工");
}
}
class Manager extends Employee{
double bonus;
public void setManaferInfo(int id,String name,double salary,double bonus){
super.id=id;
super.name=name;
super.salary=salary;
this.bonus=bonus;
}
public void getManaferInfo(){
System.out.println(super.id);
System.out.println(super.name);
System.out.println(super.salary);
System.out.println(this.bonus);
}
@Override
public void work() {
System.out.println("这是领导");
}
}
TestEmployee
package day09;
public class TestEmployee {
public static void main(String[] args) {
CommonEmployee co=new CommonEmployee();
co.setCommonEmployeeInfo(123,"小明",120);
co.work();
co.getCommonEmployeeInfo();
System.out.println("------分割线--------");
Manager ma=new Manager();
ma.setManaferInfo(124,"小李",240,50);
ma.work();
ma.getManaferInfo();
}
}
运行截图