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 */
原文地址:https://www.cnblogs.com/yhwsy/p/5708702.html