Abstract可以将子类的共性最大限度的抽取出来,放在父类中,以提高程序的简洁性。
Abstract虽然不能生成对象,但是可以声明,作为编译时类型,但不能作为运行时类型。
Final和abstract永远不会同时出现。
当abstract用于修饰方法时,此时该方法为抽象方法,此时方法不需要实现,实现留给子类覆盖,子类覆盖该方法之后方法才能够生效。
注意比较:
private void print(){};此语句表示方法的空实现。
Abstract void print(); 此语句表示方法的抽象,无实现。
如果一个类中有一个抽象方法,那么这个类一定为一个抽象类。
反之,如果一个类为抽象类,那么其中可能有非抽象的方法。
1 package TomText; 2 3 public class TomText_30 { 4 static boolean test1(int val) { 5 System.out.println("test1(" + val + ")"); 6 System.out.println("result: " + (val < 1)); 7 return val < 1; 8 } 9 static boolean test2(int val) { 10 System.out.println("test2(" + val + ")"); 11 System.out.println("result: " + (val < 2)); 12 return val < 2; 13 } 14 static boolean test3(int val) { 15 System.out.println("test3(" + val + ")"); 16 System.out.println("result: " + (val < 3)); 17 return val < 3; 18 } 19 public static void main(String[] args) { 20 if(test1(0) && test2(2) && test3(2)) 21 System.out.println("expression is true"); 22 else 23 System.out.println("expression is false"); 24 } 25 26 }