java学习笔记 abstract 抽象
abstract 抽象方法抽象类:
1 public class AbstractTest { 2 public static void main(String[] args) { 3 Person p1 = new Person("雷锋",9527); 4 5 } 6 } 7 8 abstract class Animal { 9 String name; 10 11 Animal(String name) { 12 this.name = name; 13 } 14 15 //public abstract void drink() { 16 //System.out.println("animal is drinking"); //result:把drink方法修饰为abstract方法后,提示 17 //错误,Animal不是抽象的,并且为覆盖Animal中的抽象方法drink();抽象方法不能有主体。 18 //} 19 20 //public abstract void drink();//一个抽象方法不能有主体。 21 22 23 public void drink() { 24 System.out.println("animal is drinking"); 25 } 26 27 //public void drink(); 28 } 29 30 class Person extends Animal { 31 int id; 32 33 Person(String name,int id) { 34 super(name); 35 this.id = id; 36 } 37 38 39 //public void drink() { 40 //System.out.println("person is drinking"); 41 //} 42 43 44 //当没有重写Animal类中的抽象drink()方法时,result:Person不是抽象的,并且未覆盖Animal中的抽象 45 //方法drink(); 46 } 47 48 /* 49 1.含有抽象方法的类必须修饰为抽象类。抽象方法是不玩整的,如果一个类中含有不完整的方法,那么这个 50 类就是残缺的,必须把这个类修饰成抽象类。 51 2.抽象方法不能有主体,就是没有大括号。直接 method(); 52 3.抽象方法必须被重写来实现,如果这个抽象方法在其子类中不想重写,这个子类需修饰成抽象类。 53 4.抽象类不能被实例化。 54 5.一个方法要想不含有实体则需声明为抽象类。 55 6.一个抽象类中可以有抽象的方法,也可以有实体的方法。 56 */