《java入门第一季》之面向对象(谈谈接口)

软件中有接口,这里的接口与硬件中的接口还是有很大区别的。

这里介绍接口不考虑JDK8的新特性(JDK8开始接口里面可以有非抽象方法了,介绍JDK8新特性可能要到整个第一季写完吧!)

还是直接进入接口的学习:

/*
	接口的特点:
		A:接口用关键字interface表示	
			interface 接口名 {}
		B:类(实现)接口用implements(执行,实现)表示
			class 类名 implements 接口名 {}
		C:接口不能实例化,就是说不能凭空的创建对象
			那么,接口如何实例化呢?
			按照多态的方式来实例化。//类比多态的方式进行实例化
		D:接口的子类
			a:可以是抽象类。但是意义不大。
			b:可以是具体类。要重写接口中的所有抽象方法。(推荐方案)
	
*/
//定义动物培训接口
interface AnimalTrain {
	public abstract void jump();
}

//抽象类实现接口,无意义
abstract class Dog implements AnimalTrain {
}

//具体类实现接口,实现特殊的东西.接口实现类
class Cat implements AnimalTrain {//class 类名 implements 接口名{}
	public void jump() {
		System.out.println("猫可以跳高了");
	}
}

class InterfaceDemo {
	public static void main(String[] args) {
		//AnimalTrain接口是抽象的; 无法实例化
		//AnimalTrain at = new AnimalTrain();
		//at.jump();
		//按照多态的方式来实例化接口。
		Cat at = new Cat();//自己类
		at.jump();
		AnimalTrain a = new Cat();//多态
		a.jump();
	}
}

/*
	类与类:
		继承关系,只能单继承,可以多层继承。
	类与接口:
		实现关系,可以单实现,也可以多实现。   class Son extends Object implements Father,Mother {}
		并且还可以在继承一个类的同时实现多个接口。例如:class Son (extends Student) implements Father,Mother {}
	接口与接口:
		继承关系,可以单继承,也可以多继承。
*/
interface Father {
	public abstract void show();
}

interface Mother {
	public abstract void show2();
}

interface Sister extends Father,Mother {

}

//class Son implements Father,Mother //多实现
class Son extends Object implements Father,Mother {
	public void show() {//实现关系,可以单实现,也可以多实现。
		System.out.println("show son");
	}
	
	public void show2() {
		System.out.println("show2 son");
	}
}

class InterfaceDemo3 {
	public static void main(String[] args) {
		//创建对象
		Father f = new Son();
		f.show();
		//f.show2(); //报错,Father接口中没有show()2所以报错	要想使用可以通过向下转型
		Mother m = new Son();
		//m.show(); //报错原因同上
		m.show2();
	}
}


你可能感兴趣的:(《java入门第一季》之面向对象(谈谈接口))