多态
多态定义:允许一个父类变量引用子类的对象;允许一个接口类型引用实现类对象。
多态的调用:使用父类的变量指向子类的对象;所调用的属性和方法只限定父类中定义的属性和方法,不能调用子类中特有的属性和方法,
多态主要应用为多态参数和多态对象
package JobTest; abstract class Job { public abstract void work();// 为了方便进行多态调用 } class Teacther extends Job { @Override public void work() { System.out.println("上课"); } } class Cookies extends Job { @Override public void work() { System.out.println("做饭"); } } class Driver extends Job { @Override public void work() { System.out.println("开车"); } } package JobTest; public class JobTest { public static void main(String[] args) { Job a=new Teacther();//父类类型变量a指向子类对象teacther Job b=new Cookies();//父类类型变量b指向子类对象Cookies Job c=new Driver();//父类类型变量c指向子类对象Driver a.work(); b.work(); c.work(); } }
以上实例是简单使用多态实例,父类Job分别使用变量指向子类对象Teacher/Cookies/Driver;
如果一个类继承抽象类,那么必须重写抽象类中所有抽象方法(@Override)
接口
接口可以看做抽象类的特例
接口中只能定义抽象方法,接口可以看做行为的抽象。
接口中的方法只能是public
接口中变量为public static final
public interface Iwash { public abstract void wash(); } class Mun implements Iwash{ @Override public void wash() { System.out.println("手洗"); } } class Washer implements Iwash { @Override public void wash() { System.out.println("电机搅动"); } } public class TestWash { public static void main(String[] args) { Iwash w = new Mun(); w.wash(); } }
实例中建立一个Iwash接口,Mum和Wash都有wash这个行为,所以都有Iwash接口
接口用于在不同的类实例当中,共享通用行为,重用方法。
接口和多态的概念不是很难,但是在于灵活运用。
时间: 2024-10-23 22:22:01