//多态课件————抽象 //多态包括,方法重载、方法重写、对象转型、抽象、接口 package chouxiang; //机器人 //抽象类abstract (如果该类中存在抽象方法必须定义成抽象类)(如果该类中没有抽象方法,也可以定义为抽象类) public abstract class Robot { //方法 //听 public void listen() { System.out.println("我能听了"); } //说 public void speak() { System.out.println("我能说了"); } //跑 //抽象方法abstract(没有方法体的方法) public abstract void run(); //跳 public abstract void jump(); } //抽象abstract总结: //抽象类总结: //定义方式:修饰符 abstract class 父类名称{} //特点:如果该类中存在抽象方法必须定义成抽象类;如果该类中没有抽象方法,也可以定义为抽象类 //抽象类不能直接实例化。必须继承抽象类,必须实现抽象方法, 如果不能完全实现抽象方法,还需定义成抽象类。 // //抽象方法: //定义方式:修饰符 abstract返回类型 方法名 (参数列表); //特点:只有方法的声明,实现实现方法(没有体)。 // //不能用abstract修饰私有属性、构造方法、静态方法、私有方法。 package chouxiang; //继承抽象类,必须实现抽象方法, 如果不能完全实现抽象方法,还需定义成抽象类。 public abstract class T100 extends Robot { //实现抽象方法 @Override public void run() { System.out.println("I can run"); } // @Override // public void jump() { // System.out.println("I can jump"); // // } } package chouxiang; public class T200 extends T100 { @Override public void jump() { System.out.println("I can jump"); } } package chouxiang; public class Robottest { public static void main(String[] args) { //抽象类不能被直接实例化 // Robot r=new Robot(); T200 T2=new T200(); T2.listen(); T2.speak(); T2.run(); T2.jump(); } }