java接口

来源:互联网 发布:公章制作软件apk 编辑:程序博客网 时间:2024/05/16 11:59

课堂练习1:教材1604.编程

代码:

 Animal类:

package mnq;


public interface Animal {
abstract void cry();
abstract String getAnimalName();


}

Simulator类:


package mnq;


public class Simulator {
Animal animal;
public void playSound(Animal animal){
animal.cry();
System.out.println(animal.getAnimalName());
}




}

dog类:

package mnq;


public class Dog implements Animal {
public String name;


public void cry(){
System.out.println("汪汪叫");
}
public String getAnimalName(){
return "狗狗";
}


}

cat类:

package mnq;


public class Cat implements Animal {
public String name;


public void cry(){
System.out.println("喵喵叫");
}
public String getAnimalName(){
return "猫猫";
}


}

Application类:


package mnq;


public class Application {


/**
* @param args
*/
public static void main(String[] args) {



Simulator simulator=new Simulator();


simulator.playSound(new Dog());
simulator.playSound(new Cat());
}





课堂练习2:大学里的学生(Student)需要学费,而研究生(Graduate)作为学生比较特殊,除了需要交学费外,还可以获取一部分科研津贴,由学校University)统一发放。此外,学校还需要发放教师Teacher)的工资

编写代码模拟上述场景:

1) 设计抽象Student:

属性包括姓名(name、学费fee);

方法包括

构造方法StudentString name)

- 抽象方法void setFeeint fee)

- 抽象方法int getFee()

2) 定义一个接口Salary:包含一个方法int getSalary();

3) 定义一个研究生类Graduate,继承Student类且实现Salary接口:

新增属性:收入salary

方法包括:

- 构造方法GraduateString name)

- 重写void setFeeint fee)

- 重写int getFee()

- 重写int getSalary(),研究生获得工资1500

- 新增方法boolean isLoan(),判断是否需要贷款(收入小于学费则需贷款)

4) 定义一个教师Teacher):

属性包括:姓名(name)、收入salary

方法包括:

- 构造方法TeacherString name)

重写int getSalary()教师获得工资3000

5) 定义一个大学类(University通过void payOffSalary s)方法给研究生和教师发放并打印工资。

6)定义主类Test

代码:


Student类:

public abstract class Student {
String name;
int fee;
public Student(String name){
this.name=name;
}
     void setFee(int fee){
     
     }
      int getFee(){
     return fee;
      }  
}

Salary类:

public interface Salary {
public int getSalary();


}

Graduate类:

public class Graduate extends Student implements Salary{
   int salary;
   public Graduate(String name){
  super(name);
   }
   void setFee(int fee){
  this.fee=fee;
  
   }
   int getFee(){
  return 0;
  
   }
   public int getSalary(){
  return 1500;
   }
    boolean isLoan(){
  if(salary<fee)
  return true;
  else 
  return false;
   }
}

Teacher类:

public class Teacher implements Salary {
String name;
int salary;
public Teacher(String name){
this.name=name;
}
public int getSalary(){
return 3000;
}



}

University类:

public class University {
void payOff(Salary s){
System.out.println(s.getSalary());
}


}

Twxt类:

public class Text {
public static void main(String[] args){
Graduate g=new Graduate("小亮");
g.setFee(1000);
University u=new University();
u.payOff(g);
System.out.println("是否需要贷款:"+g.isLoan());

Teacher t=new Teacher("大王");
u.payOff(t);
}


}



原创粉丝点击