抽象类和抽象方法的区别
抽象方法:在类中没有方法体的方法,就是抽象方法。 抽象类:含有抽象方法的类就叫抽象类。 抽象类中的抽象方法必须被实现! 如果一个子类没有实现父类中的抽象方法,则子类也成为了一个抽象类! 抽象类中的普通方法,可以不必实现。 1 用abstract来修饰一个类时,这个类叫做抽象类;用abstract来修饰一个方法时,该方法叫做抽象方法。例如 : 1 abstract class Animal { //用abstract来定义一个Animal为抽象类 2 } 3 和 4 public abstract void enjoy(); //用abstract来定义一个抽象方法"enjoy" 2 含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写。 3 抽象类不能被实例化。 4 抽象方法只需声明,而不需实现某些功能。如: 1 public abstract void enjoy();//这个抽象方法不需要实现功能 2 3 public void enjoy() { 4 System.out.print("叫声"); //而一般的方法有必要实现某些功能 5 } 例A:没抽象类的多态程序 01 class Person { 02 public void f() { 03 System.out.println("父类"); 04 } 05 } 06 07 class Students extends Person { 08 public void f() { 09 System.out.println("学生类"); 10 } 11 } 12 13 class Teacher extends Person { 14 public void f() { 15 System.out.println("教师类"); 16 } 17 } 18 19 public class Test3 { 20 public static void main(String[] args) { 21 Person s = new Students(); 22 Person t = new Teacher(); 23 s.f(); 24 t.f(); 25 } 26 } 例B:抽象类的多态程序 01 abstract class Person { 02 public abstract void f(); 03 } 04 05 class Students extends Person { 06 public void f() { 07 System.out.println("学生类"); 08 } 09 } 10 11 class Teacher extends Person { 12 public void f() { 13 System.out.println("教师类"); 14 } 15 } 16 17 public class Test3 { 18 public static void main(String[] args) { 19 Person s = new Students(); 20 Person t = new Teacher(); 21 s.f(); 22 t.f(); 23 } 24 }