博客
关于我
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/

    你可能感兴趣的文章
    No resource identifier found for attribute 'srcCompat' in package的解决办法
    查看>>
    no session found for current thread
    查看>>
    No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android
    查看>>
    NO.23 ZenTaoPHP目录结构
    查看>>
    no1
    查看>>
    NO32 网络层次及OSI7层模型--TCP三次握手四次断开--子网划分
    查看>>
    NOAA(美国海洋和大气管理局)气象数据获取与POI点数据获取
    查看>>
    NoClassDefFoundError: org/springframework/boot/context/properties/ConfigurationBeanFactoryMetadata
    查看>>
    node exporter完整版
    查看>>
    Node JS: < 一> 初识Node JS
    查看>>
    Node Sass does not yet support your current environment: Windows 64-bit with Unsupported runtime(72)
    查看>>
    Node 裁切图片的方法
    查看>>
    Node+Express连接mysql实现增删改查
    查看>>
    node, nvm, npm,pnpm,以前简单的前端环境为什么越来越复杂
    查看>>
    Node-RED中Button按钮组件和TextInput文字输入组件的使用
    查看>>
    Node-RED中Switch开关和Dropdown选择组件的使用
    查看>>
    Node-RED中使用html节点爬取HTML网页资料之爬取Node-RED的最新版本
    查看>>
    Node-RED中使用JSON数据建立web网站
    查看>>
    Node-RED中使用json节点解析JSON数据
    查看>>
    Node-RED中使用node-random节点来实现随机数在折线图中显示
    查看>>