1.首先我们引出抽象,在我们过去写一个父类和写一个子类的时候,要进行子类对父类方法的重写,那么父类原来的实体方法中的方法体中的内容就没有了意义,因为方法重写后执行的是子类重写后的方法。所有我们想要将父类中需要子类重写的方法的方法体去掉,这个时候就需要用到abstract这个关键字
public class Error { public static void main(String[] args) { B b=new B(); b.m(); } } class A{ //属性 String name; //方法 public void m1() { System.out.println("父类重写方法的方法体中的代码没有意义了"); } } class B extends A{ public void m() { System.out.println("执行的是子类重写后的方法"); } }
改造后
public class Error { public static void main(String[] args) { B b=new B(); b.m(); } } abstract class A{ //抽象类中才能有抽象方法 //属性 String name; //方法 public abstract void m(); //改成抽象方法 } class B extends A{ public void m() { System.out.println("执行的是子类重写后的方法"); } }
1.一个类中有了抽象方法,此时这个类就要变成抽象类