java接口的具体实例及用法

java接口的实例

问题如下:

老师和学生案例,加入抽烟的额外功能

分析:从具体到抽象
老师:姓名,年龄,吃饭,睡觉
学生:姓名,年龄,吃饭,睡觉
由于有共性功能,我们提取出一个父类,人类。
人类:
姓名,年龄
吃饭();
睡觉(){}
抽烟的额外功能不是人或者老师,或者学生一开始就应该具备的,所以,我们把它定义为接口
抽烟接口
部分老师抽烟:实现抽烟接口
部分学生抽烟:实现抽烟接口
实现:从抽象到具体
使用:具体
*/
代码如下:

package hello;

//定义抽烟接口
interface Smoking{
	public abstract void smoke();
}
abstract class Person{
	private String name;
	private int age;
	public Person() {}
	public Person(String name,int age) {
		this.name=name;
		this.age=age;
	}
	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 abstract void eat();
	public void sleep() {
		System.out.println("睡觉了");
	}
}
class Teacher extends Person{
	public Teacher() {}
	public Teacher(String name,int age) {
		super(name,age);
	}
	public void eat() {
		System.out.println("吃大白菜");
	}
}
class Student extends Person{
	public Student() {}
	public Student(String name,int age) {
		super(name,age);
	}
	public void eat() {
		System.out.println("吃肉");
	}
}
class SmokingTeacher extends Teacher implements Smoking{//接口,也相当于一个类
	public SmokingTeacher() {}
	public SmokingTeacher(String name,int age) {
		super(name,age);
	}
	public void smoke() {
		System.out.println("抽烟的老师");
	}
}
class SmokingStudent extends Student implements Smoking{
	public SmokingStudent() {}
	public SmokingStudent(String name,int age) {
		super(name,age);
	}
	public void smoke() {
		System.out.println("抽烟的学生");
	}
}
public  class Hello
{
	public static void main(String[] args) {
		SmokingTeacher tt=new SmokingTeacher();
		tt.setName("张三");
		tt.setAge(20);
		System.out.println(tt.getName()+"---"+tt.getAge());
		System.out.println("------------");
		tt.eat();
		tt.sleep();
		tt.smoke();
		System.out.println("-------");
		SmokingTeacher tt1=new SmokingTeacher("张三",20);
		System.out.println(tt1.getName()+"----"+tt1.getAge());
		tt1.eat();
		tt1.sleep();
		tt1.smoke();
		System.out.println("-------------------");
		//测试学生
		SmokingStudent ss = new SmokingStudent();
		ss.setName("林青霞");
		ss.setAge(27);
		System.out.println(ss.getName()+"---"+ss.getAge());
		ss.eat();
		ss.sleep();
		ss.smoke();
		System.out.println("-------------------");
				
		SmokingStudent ss2 = new SmokingStudent("刘意",30);
		System.out.println(ss2.getName()+"---"+ss2.getAge());
		ss2.eat();
		ss2.sleep();
		ss2.smoke();
				
			}
}

注:本人还是一名大一小白,会的东西也就一点点,希望有大牛能够多多指点!!!

猜你喜欢

转载自blog.csdn.net/weixin_43566977/article/details/88290886
今日推荐