接口——interface

(一) 

package javaprac;
/*
 * @interface 关键字
 * 1.接口名用public abstract修饰,即使没写也会自动设置此权限。
 * 2.接口extends继承父接口,接口是多继承的,extends后面是接口列表
 * 3.类通过关键字implements实现接口,一个类可以实现一个或多个接口,这实际上就摆脱了java的单继承局限
 * 4.接口中定义的成员变量:系统自动为变量增加public static final修饰符,必须在定义时指定默认值,且成员变量值不可更改
 * 5.接口中定义的方法,系统自动为方法增加public abstract修饰,在定义子类时必须实现该方法的具体细节
 * 6.类中必须实现接口中的全部方法,否则类为抽象类,重写抽象方法时必须显示标明访问权限为public
 * */

interface shape_demo{
	double PI = 3.14159;		//静态常量,定义时必须赋初值
	double area();				//抽象方法,在类中必须定义实现细节,并且显示标明方法权限为public
	
}
class circle_demo implements shape_demo{
	double radius;
	circle_demo(double r){
		this.radius=r;
	}
	public double area() {		//定义实现接口中的抽象方法,并显示标明方法权限为public
		return PI*radius*radius;
	}
}
public class interface_demo {

	public static void main(String[] args) {
		circle_demo c = new circle_demo(10);
		System.out.println("圆的面积是:"+c.area());
	}

}

(二) 

package javaprac;
/*@Interface再议接口
 * 1.接口中定义的变量:静态常量,再定义时必须初始化,一旦定义不可更改
 * 2.接口中定义的方法:
	 * a.抽象方法:如果不指定权限,系统会默认为其定义成抽象型(在类中必须重新定义实现细节,且必须显示声明public权限)
	 * b.类方法:用static关键字声明,必须要有方法体,可通过类名来调用
	 * c.默认方法:用default关键字声明,必须有方法题,通过对象来调用(在事件处理时会用到)
 * */
interface Collection{
	String DATA = "Java 1.8接口应用";
	int size();
	default boolean isEmpty() {
		return size() == 0;
	}
	static String getData() {
		return DATA;
	}
}
public class interface_extend {

	public static void main(String[] args) {
		System.out.println(Collection.DATA);
		System.out.println(Collection.getData());
	}
}

 

(三) 

package javaprac;
/*
 * 类可以同时继承接口和父类,接口用implements关键字,父类用extends关键字
 * 类是单继承的,接口是多继承的 
 * 在继承父类的普通方法时,需要注意:子类对于父类方法重载后的权限一定不能小于父类的权限
 * */
interface Runner{
	void run();
}
interface Swimmer{
	void swim();
}
abstract class Animal {
	abstract public void eat();
}

class Dog extends Animal implements Runner,Swimmer{
	String color;
	Dog(String color){
		this.color=color;
	}
	public void run() {
		System.out.println(color+"dog is running");
	}
	public void swim() {
		System.out.println(color+"dog is swimming");
	}
	public void eat() {
		System.out.println(color+"dog is eating");
	}
}
public class interfaceAndAbs {

	public static void main(String[] args) {
		Dog dog = new Dog("white");
		dog.run();
		dog.swim();
		dog.eat();
	}
}

 

发布了61 篇原创文章 · 获赞 61 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_42475914/article/details/100755362