面向对象——补充:抽象类(目前非重点)

抽象类(非重点)

  • 抽象类总结规定

一个类中如果包含抽象方法,这个类应该用abstract关键字声明为抽象类。

意义:

1,为子类提供一个公共的类型;

2,封装子类中重复内容(成员变量和方法);

3,定义有抽象方法,子类虽然有不同的实现,但该方法的定义是一致的。

注意点:

  1. 抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。

  2. 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。

  3. 抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。

  4. 构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。

  5. 抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。

  • 由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定要不要设计抽象类。
  • abstract修饰的类就是抽象类,修饰的方法就是抽象方法
  • 抽象类中可以有普通方法,但有抽象方法时一定要声明为抽象类
  • 抽象类不能使用new来创建对象,它是用来让子类继承的
  • 抽象方法只有方法的声明,没有实现,让其子类实现
  • 子类继承抽象类,必须实现抽象类的所有方法, 否则该子类也要声明为抽象类
package com.oop.demo08;
//abstract 抽象类      java的类是单继承,但是接口可以多继承
public abstract class Action {
    //约束~让别人帮忙实现
    //abstract 抽象方法,只有方法名字,没有方法的实现!
    public abstract void doSomething();
}
package com.oop.demo08;
//子类在继承了抽象类的所有方法时,必须对抽象类方法进行实现,除非
public class A extends Action{
    @Override
    public void doSomething() {

    }
}

posted @   Fred不想做咸鱼  阅读(69)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
点击右上角即可分享
微信分享提示