博客
关于我
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 3.10 明年发布,看看都有哪些新特性?
    查看>>
    python 3.10上安装pyqt5
    查看>>
    Python 3.12 正式发布了!
    查看>>
    Python 3.2 中的蛮力脚本
    查看>>
    Python 3.4 多处理递归 Pool.map()
    查看>>
    Python 3.4:未知格式代码“x“
    查看>>
    Python 3.5、ldap3 和 modify_password()
    查看>>
    python 3.6.8 升级至3.9版本升级
    查看>>
    Python 3.9 到 Python 3.12 的发展历程与区别
    查看>>
    python 32位和64位的区别在哪
    查看>>
    Python 3:何时使用 dict,何时使用元组列表?
    查看>>
    Python 3d 绘图 - 轴居中
    查看>>
    python ==》 字典
    查看>>
    python anaconda 安装使用
    查看>>
    python and或or 当参数传递的时候的用法
    查看>>
    Python append() 与列表上的 + 运算符,为什么这些会给出不同的结果?
    查看>>
    Python APP自动化测试工具adb与Monkey使用详解
    查看>>
    Python APP自动化测试框架Appium详解
    查看>>
    Python APP自动化测试框架开发实战
    查看>>
    python argparse模块
    查看>>