#JAVA#面向对象(抽象类练习)
package 抽象类;
abstract class Animal{
private String name;
private int age;
public Animal() {}
public Animal(String name,int age) {
this.name=name;
this.age=age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public void setName(String name) {
this.name=name;
}
public void setAge(int age) {
this.age=age;
}
public abstract void eat();
}
class Dog extends Animal {
public Dog() {}
public Dog(String name,int age) {
super(name,age);
}
public void eat() {
System.out.println("狗吃骨头");
}
}
class Cat extends Animal {
public Cat() {}
public Cat(String name,int age) {
super(name,age);
}
public void eat() {
System.out.println("猫吃鱼");
}
}
class AbstractDemo {
public static void main(String args[]) {
Animal a=new Dog("斑点狗",3);
System.out.println(a.getName()+" "+a.getAge());
a.eat();
a=new Cat("Hellokitty",2);
System.out.println(a.getName()+" "+a.getAge());
a.eat();
}
}
package 抽象类;
abstract class Teacher{
private String name;
private int age;
public Teacher() {}
public Teacher(String name,int age) {
this.name=name;
this.age=age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public abstract void teach();
}
class jichuTeacher extends Teacher {
public jichuTeacher() {}
public jichuTeacher(String name,int age) {
super(name,age);
}
public void teach() {
System.out.println("基础很重要");
}
}
class jiuyeTeacher extends Teacher{
public jiuyeTeacher() {}
public jiuyeTeacher(String name,int age) {
super(name,age);
}
public void teach() {
System.out.println("就业很重要");
}
}
class AbstractDemo {
public static void main(String args[]) {
Teacher t=new jichuTeacher("***",27);
System.out.println(t.getName()+" "+t.getAge());
t.teach();
t=new jiuyeTeacher("&&&",33);
System.out.println(t.getName()+" "+t.getAge());
t.teach();
}
}
package 抽象类;
abstract class Student{
private String name;
private int age;
private String num;
public Student() {}
public Student(String name,int age,String num) {
this.name=name;
this.age=age;
this.num=num;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getNum() {
return num;
}
public void eat() {
System.out.println("吃饭");
}
public abstract void study();
}
class jichuStudent extends Student{
public jichuStudent() {}
public jichuStudent(String name,int age,String num) {
super(name,age,num);
}
public void study() {
System.out.println("学习基础知识");
}
}
class jiuyeStudent extends Student{
public jiuyeStudent() {}
public jiuyeStudent(String name,int age,String num) {
super(name,age,num);
}
public void study() {
System.out.println("学习就业知识");
}
}
class AbstractDemo {
public static void main(String args[]) {
Student s=new jichuStudent("***",18,"193601");
System.out.println(s.getName()+" "+s.getAge()+" "+s.getNum());
s.eat();
s.study();
s=new jiuyeStudent("&&&",20,"193609");
System.out.println(s.getName()+" "+s.getAge()+" "+s.getNum());
s.eat();
s.study();
}
}
package 抽象类;
abstract class employee{
private String name;
private int age;
private String num;
private double money;
public employee() {}
public employee(String name,int age,String num,double money) {
this.name=name;
this.age=age;
this.num=num;
this.money=money;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getNum() {
return num;
}
public double getMoney() {
return money;
}
public abstract void work();
}
class PTemployee extends employee{
public PTemployee() {}
public PTemployee(String name,int age,String num,double money) {
super(name,age,num,money);
}
public void work() {
System.out.println("普通员工工作");
}
}
class JLemployee extends employee{
private double money2;
public JLemployee() {}
public JLemployee(String name,int age,String num,double money,double money2) {
super(name,age,num,money);
this.money2=money2;
}
public double getMoney2() {
return money2;
}
public void work() {
System.out.println("经理工作");
}
}
class AbstractDemo {
public static void main(String args[]) {
employee e=new PTemployee("***",25,"20190809",5000);
System.out.println(e.getName()+" "+e.getAge()+" "+e.getNum()+" "+e.getMoney());
e.work();
//由于子类有特有的内容,所以用子类来测试
JLemployee j=new JLemployee("&&&",30,"20190806",8000,1000);
System.out.println(j.getName()+" "+j.getAge()+" "+j.getNum()+" "+j.getMoney()+" "+j.getMoney2());
j.work();
}
}