博客
关于我
JAVA面向对象之抽象类
阅读量:183 次
发布时间:2019-02-28

本文共 1675 字,大约阅读时间需要 5 分钟。

JAVA面向对象之抽象类

抽象类简介

抽象类是Java中的一种高级概念,它与具体类有明显区别。以下是抽象类的主要特点:

  • 成员变量:抽象类可以声明变量和常量,子类可以通过继承这些变量进行扩展和修改
  • 成员方法:抽象类可以包含抽象方法,抽象方法是没有具体实现的方法,子类需要通过实现这些方法来提供实际功能
  • 构造方法:抽象类可以包含构造方法,但由于抽象类不能被实例化,构造方法不能用于创建对象
  • 如何创建对象:抽象类本身不能创建对象,只能通过继承抽象类的子类来创建对象
  • 抽象类的注意事项

  • 抽象类不能实例化对象:抽象类不能直接被用来创建对象
  • 抽象类中可以没有抽象方法:抽象类可以选择性地声明抽象方法
  • 有抽象方法的类一定是抽象类:如果一个类中有抽象方法,那么这个类一定是抽象类
  • 抽象类可以声明对象,但不能使用自身构造方法创建对象:抽象类可以通过子类的构造方法创建对象
  • 抽象类的实际应用

    动物与子类的关系

    abstract class Animal {    final int num = 10;    public Animal() {        System.out.println("构造方法");    }    public abstract void fun();    public void fun1() {        System.out.println("我是成员方法");    }}class Dog extends Animal {    public Dog() {        System.out.println("Dog构造方法");    }    @Override    public void fun() {        System.out.println("Dog实现fun方法");    }}class Cat extends Animal {    public Cat() {        System.out.println("Cat构造方法");    }    @Override    public void fun() {        System.out.println("Cat实现fun方法");    }}// 创建Dog对象Dog dog = new Dog();dog.fun(); // 调用Dog类的fun方法

    人与学生的关系

    abstract class Person {    public abstract void eat();    public abstract void sleep();}class Student extends Person {    @Override    public void eat() {        System.out.println("学生吃肉");    }    @Override    public void sleep() {        System.out.println("学生趴桌子睡觉");    }}

    BXJP与YBQ的关系

    abstract class BXJP {    public abstract void ZG();}class YBQ extends BXJP {    @Override    public void ZG() {        System.out.println("狼牙棒自宫");    }}class LPZ extends BXJP {    @Override    public void ZG() {        System.out.println("流星锤自宫");    }}

    总结

    抽象类是Java面向对象编程中的重要概念,它通过抽象方法和抽象变量为子类提供了一个框架,强制子类去实现具体的功能。通过学习抽象类,你可以更好地理解Java的面向对象特性以及如何设计类与接口。在实际开发中,抽象类广泛应用于抽象算法、框架设计等场景。

    转载地址:http://kbln.baihongyu.com/

    你可能感兴趣的文章
    python 判断当前时间是否为零点
    查看>>
    python 利用pandas读取本地中CSV文件的指定列 列名重命名 并保存回本地
    查看>>
    python 利用pyspark读取HDFS中CSV文件的指定列 列名重命名 并保存回HDFS
    查看>>
    python 利用pyttsx3文字转语音
    查看>>
    python 利用已有Ner模型进行数据清洗合并
    查看>>
    python 到大数据开发工程师_如何成为一个大数据开发工程师?
    查看>>
    python 加密解密(base64, AES)
    查看>>
    Python 包管理器和 Node.js
    查看>>
    Python 单词字母顺序不变且所有倒排
    查看>>
    python 启动提示IDLE's subprocess didn't make conne...
    查看>>
    python 命令接口_实现“[命令][操作][参数]”样式的命令行接口?
    查看>>
    Python 和 OpenCV.如何检测图像中的所有(填充)圆形/圆形对象?
    查看>>
    Python 和 RabbitMQ - 聆听来自多个渠道的消费事件的最佳方式?
    查看>>
    python编辑器打不开_关于命令ride.py打不开RF,而是打开pycharm编辑器问题解决思路...
    查看>>
    python编译exe同时支持32位_第三周:同时管理64位和32位版本的Python,并用Pyinstaller打包成exe...
    查看>>
    Python 和Java 哪个更适合做自动化测试?
    查看>>
    Python编程:掌握高级语言程序设计。从零基础到精通,收藏这篇就够了!
    查看>>
    python 图片转ico
    查看>>
    python 图片转文字、语音转文字、文字转语音保存音频并朗读
    查看>>
    python 在包含类似字符\x16、\x12、\x某某的数组中将以\x开头的字符找出来的方法
    查看>>