1.多态(一种现象)
继承是多态的实现基础
多态:即对象的多种形态
1.引用多态
父类的引用可以指向本类对象
父类的引用可以指向子类对象
这就是引用多态
2.方法多态
创建本类对象时,调用的方法为本来的方法
创建子类对象时,调用的方法为子类重写的方法或继承的方法
二.接口
什么是接口呢???
接口可以理解为一种特殊的类,由全局常量和公共的抽象方法所组成
如果说类是一种具体实现体,那么接口就是某些类所要遵循的规范,接口只是一种规范,不关心类的内部数据和方法实现的细节,它只规定类中必须有什么东西,是用来约束类的。用interface关键字定义接口
要注意的是接口一般都是用来被继承,被实现的。修饰符一般用public,不用protected和private修饰接口
接口中全是常量和抽象方法
问题来了,怎么去使用接口呢??
一个类可以实现一个或多个接口,实现接口使用implements 关键字。。。我们知道Java中一个类只能继承一个父类,这样是不是很不灵活,那么就可以通过接口进行补充
这里需要 注意的是继承和接口的实现顺序是不能互换的,也就是必须先继承再实现接口,还有就是实现接口时,同样也要实现接口里的方法
下面看一个接口实现的例子
//接口 package ClassDemo1; public interface IWatch { public void watch(); } //Woker类 package ClassDemo1; public class Woker implements IWatch{ @Override public void watch() { System.out.println("我们都有一双明亮的眼睛"); } } //Student类 package ClassDemo1; public class Student extends Person implements IWatch{ public void say() { System.out.println("学生会说不同的语言"); } public void watch() { System.out.println("我们也有一双明亮的眼睛"); } } //测试类、 package ClassDemo1; public class Main { public static void main(String[] args) { IWatch i=new Woker(); //用接口引用指向实现接口的对象 IWatch j=new Student(); i.watch(); j.watch(); } }
另外附上测试结果