本系列博客汇总在这里:Java系列_汇总


目录


一、抽象方法概念

  当多个具体的实体类存在着共同的行为,但是有着不同的表现,我们在父类继承过程中父类的方法具体实现不能确定,但是能确定的是他们都有这种行为,我们就把这种行为方法作为抽象方法,简单的举个例子:吃就是一个行为方法,但是不知道具体吃的什么,从而这个行为方法就是抽象方法。

二、抽象语法

  • 语法
  • public abtract [返回值] [void] 方法名 (参数列表)
    //没有方法体
  • 如果在一个类中存在一个抽象方法,那么这个类一定是抽象类,这个类上也要有 abstract 标识:
  • abstract class 类名
    {
    属性
    方法
    }
  • 注意:抽象类中可以没有抽象方法。但是有抽象方法的一定是抽象类。
    Java系列(15)——抽象类_java

三、抽象类的特点

  1. 抽象类不能被实例化,抽象类必须被子类继承才能使用子类实例化。
    Java系列(15)——抽象类_抽象类_02
  2. 示例
  3. abstract class Person
    {
    String name;
    int age;
    public abstract void study();
    public abstract void work();
    public abstract void eating();
    }
    class Student extends Person
    {
    public void work()
    {
    System.out.println(name+"在工作");
    }
    public void study()
    {
    System.out.println(name+"在学习JAVA");
    }

    public void eating()
    {
    System.out.println(name+"在吃西瓜");
    }
    }
    class Worker extends Person
    {
    public void work()
    {
    System.out.println(name + "在工作");
    }

    public void study()
    {
    System.out.println(name + "在学习PHP");
    }

    public void eating()
    {
    System.out.println(name + "在吃苹果");
    }
    }
    class Welcome
    {
    public static void main(String[] args)
    {
    // 抽象类不可以实例化
    // Person p = new Person();
    System.out.println("-------------------------------------------");
    Student s = new Student();
    s.name = "张三";
    s.work();
    s.study();
    s.eating();

    System.out.println("-------------------------------------------");
    Worker w = new Worker();
    w.name = "李四";
    w.work();
    w.study();
    w.eating();
    }
    }
  4. Java系列(15)——抽象类_抽象类_03
  5. 非抽象类的子类继承抽象类必须实现抽象类的所有抽象方法,意思是抽象类继承抽象类就可以不用实现抽象类的抽象方法,但是就不可以实例化了。
    Java系列(15)——抽象类_抽象类_04
  6. 抽象类也可以继承抽象类,这样不需要实现父抽象类的方法。
  7. 抽象类的抽象方法不能和 private,final,static 共存Java系列(15)——抽象类_抽象类和抽象方法_05
    Java系列(15)——抽象类_抽象类_06Java系列(15)——抽象类_java_07

如有错误,欢迎指正!