Java学习笔记(八)面向对象---抽象类

2020-02-14 16:05:00来源:博客园 阅读 ()

容器云强势上线!快速搭建集群,上万Linux镜像随意使用

Java学习笔记(八)面向对象---抽象类

当多个类中出现相同功能,但是功能主体不同时,我们可以向上抽取,只抽取功能定义,而不抽取功能主体。

抽象类的特点

  1. 抽象方法一定在抽象类中。
  2. 抽象方法和抽象类都必须被abstract关键字修饰。
  3. 抽象类不可以用new创建对象,因为调用抽象方法没有意义。
  4. 抽象类中的抽象方法要被使用,必须由子类复写所有的抽象方法后,才能建立子类对象调用。(如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。)
abstract class Student {
    abstract void study();
    abstract void read();
    void sleep() {
        System.out.println("sleep");
    }
}
class StudentClass1 extends Student {
    void study() {
        System.out.println("study Java");
    }
    void read() {
        System.out.println("read book");
    }
}
class StudentClass2 extends Student {
    void study() {
        System.out.println("study python");
    }
    void read() {
        System.out.println("study magazine");
    }
}
public class AbstractDemo {
    public static void main(String[] args) {
        StudentClass1 s1 = new StudentClass1();
        StudentClass2 s2 = new StudentClass2();
        s1.study();
        s1.read();
        s1.sleep();
        s2.study();
        s2.read();
        s2.sleep();
    }
}

运行结果

study Java
read book
sleep
study python
study magazine
sleep

StudentClass1类和StudentClass2类分别对Student类中所有抽象方法都进行了复写。
抽象类中可以不定义抽象方法,仅仅是为了不让该类建立对象


原文链接:https://www.cnblogs.com/liyuxin2/p/12307592.html
如有疑问请与原作者联系

标签:POSTem如果ClasssysAV

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:浅谈应用系统立体化监控

下一篇:JavaSE学习笔记(13)---线程池、Lambda表达式