/**
* abstract关键字的使用
* 1.abstract抽象的
* 2.abstract可以修饰的结构:类、方法
* 3.abstract修饰类:抽象类
* >此类不能实例化
* >抽象类中一定是有构造器的,只是自己不能调用来创建对象了,但是子类还需要用的。
* 开发中,都会提供抽象类的子类,让子类对象实例化,完成相关操作。
*
* 4.abstract修饰方法:抽象方法
* >抽象方法只有方法的声明,没有方法体
* >包含抽象方法的类,一定是一个抽象类。反之,抽象类中可以没有抽象方法。
* >若子类重写父类中的所有抽象方法后,此子类方可造对象。
* 若子类没有重写父类中的所有抽象方法,则此子类必须也声明为抽象类,否则会报错。
 * 5.abstract使用上的注意点
* >不能用来修饰属性、构造器等结构
* >不能用来修饰私有方法、静态方法、final的方法、final的类

*/
 1 package com.fu.java1;
 2 
 3 
 4 public class AbstractTest {
 5     public static void main(String[] args) {
 6         //一旦Person类抽象了,就不可实例化
 7 //        Person p1 = new Person();
 8 //        p1.eat();
 9     }
10 }
11 
12 abstract class Creature{
13     public abstract void breath();
14 
15 }
16 
17 abstract class Person extends Creature{
18     String name;
19     int age;
20 
21     public Person(){
22 
23     }
24     public Person(String name,int age){
25         this.name = name;
26         this.age = age;
27     }
28 
29     //不是抽象方法
30 //    public void eat(){
31 //
32 //    }
33 
34     //这才是抽象方法
35     abstract public void eat();
36 
37     public void walk(){
38         System.out.println("人走路");
39     }
40 }
41 
42  class Student extends Person{
43     public Student(String name,int age){
44         super(name, age);
45     }
46 
47     public void eat(){
48         System.out.println("学生应该吃有营养的食物");
49     }
50 
51      @Override
52      public void breath() {
53          System.out.println("学生应该多呼吸新鲜的空气");
54      }
55  }

 

 
此为本人学习笔记,若有错误,请不吝赐教