接口的简单应用

来源:互联网 发布:网络渗透软件 编辑:程序博客网 时间:2024/05/01 14:38
interface Singer{
    public  void sing();
    public  void sleep();
}
interface Panit{
   public  void paint();
   public  void eat();
}
class Student  implements Singer{
    String name;
    public Student(String name){
        this.name=name;
    }
     public  void sing(){
        System.out.println(this.name+"==========Student is singing========");
     }   

     public  void sleep(){
        System.out.println(this.name+"==========Student is sleep===========");
     }
     //Student自己的方法
    public void study(){
        System.out.println(this.name+"==========student is Studying==========");
    }
}
class Teacher  implements Singer,Panit{
    String name;
    public Teacher(String name){
        this.name=name;
    }
     public  void sing(){
        System.out.println(this.name+"==========Teacher is singing========");
     }   

     public  void sleep(){
        System.out.println(this.name+"==========Teacher is sleep===========");
     }
     public  void paint(){
        System.out.println(this.name+"==========Teacher is painting========");
     }   

     public  void eat(){
        System.out.println(this.name+"==========Teacher is eating===========");
     }
     //Teacher自己的方法
    public void teach(){
        System.out.println(this.name+"==========Teacher is Teaching==========");
    }
}
public class A{
    public static void main (String [] args)
    {
        Singer s1=new Student("马建杰");
        Singer s2=new Teacher("王伟");
        s1.sing();
        s2.sing();
       //s2.eat();                //找不到eat方法,因为在s2 看来,s2是Singer身份,他无法使用 teacher自己的方法和panit 的方法
        //s2.teach();             //同上。。。
        Panit p=(Panit)s2;
        p.eat();
        System.out.println("*********************************************");
        f(s1);
        f(s2);
      
    }
    public static void f(Singer s){
        s.sing();
    }
     
}
0 0