JAVA中的接口

/*
 * 接口定义时,格式特点:
 * 1、接口中常见定义:常量,抽象方法
 * 2、接口中的成员都有固定修饰符
 * 		常量:public static final
 * 		方法:public abstract
 * 记住:接口中的成员都是public的
 * 
 * 接口是不可以创建对象的,因为有抽象方法
 * 需要被子类实现,子类对接口中的抽象方法全部覆盖后,子类才可以实例化
 * 否则子类是个抽象类
 * 
 * 接口可以被类多实现,也是对多继承不支持的转换形式
 * (接口可以多继承,如果所有父接口里面同名函数的返回值相同)
 * 
 * */

interface Inter {
	public static final int NUM = 3;

	public abstract void show();

}

interface InterA{
	public abstract void method();
}

interface A extends InterA{
	
}

class Test1 implements Inter,InterA {
	public void show() {
		System.out.println("123");
	}
	public void method(){} 

}

public class InterfaceDemo {
	public static void main(String agrs[]) {
		Test1 t = new Test1();
		System.out.println(t.NUM);
		System.out.println(Test1.NUM);
		System.out.println(Inter.NUM);
	}
}

上面的输出结果都是3,Test1.NUM和Inter.NUM应为NUM是静态的,所以可以被类名直接调用

举例子:

abstract class Student{
	abstract void study();
	void sleep(){
		System.out.println("sleep");
	}
}

interface Smoking{
	void Smoke();
}

class ZhangSan extends Student5 implements Smoking{
	void study(){}
	public void Smoke(){}
}

class LiSi extends Student5{
	void study(){}
}

public class InterfaceDemo2 {

}

上面的例子中,学生一定会学习和睡觉,但是不一定会抽烟,所以如果把抽烟直接放在学生类中是不行的,所以利用接口,让张三继承学生类实现抽烟接口,这样张三就又是学生,又会抽烟。而李四只继承学生不实现抽烟,那他就不会抽烟。这样定义更符合现实生活。


                                                                                           ---------------------By   仔鸡


猜你喜欢

转载自blog.csdn.net/qq_37325788/article/details/80212411