抽象类和抽象方法

抽象方法:使用abstract修饰的方法,没有方法体,没有声明,定义的是一种规范,就是告诉子类必须要给抽象方法提供具体的实现

抽象类:包含抽象方法的类就是抽象类,通过抽象类,我们就可以做到严格限制子类的设计,使子类之间更加通用。

csharp 复制代码
package testduotai;

public abstract class Animal {
    public abstract void shout(); // 抽象方法
    public abstract void run(); // 抽象方法
}

class Dog extends Animal {
    // 子类必须实现父类的抽象方法,否则编译报错
    @Override
    public void shout() {
        System.out.println("汪汪汪");
    }

    @Override
    public void run() {
        System.out.println("跑起来");
    }
}

抽象类的使用要点

  1. 有抽象方法的类整你定义为抽象类
  2. 抽象类不可以实例化,即不可以用new方法来实例化抽象类;
ini 复制代码
Animal a = new Animal(); // 如果Animal是抽象类,则这样写会编译报错
  1. 抽象类可以包含属性、方法、构造方法。但是构造方法不能用来new实例,只能用来被子类调用。
  2. 抽象类只能用来被继承,不可以用来new
  3. 抽象方法必须被子类实现
相关推荐
你的人类朋友9 小时前
✍️记录自己的git分支管理实践
前端·git·后端
像风一样自由20209 小时前
Go语言入门指南-从零开始的奇妙之旅
开发语言·后端·golang
合作小小程序员小小店10 小时前
web网页开发,在线考勤管理系统,基于Idea,html,css,vue,java,springboot,mysql
java·前端·vue.js·后端·intellij-idea·springboot
间彧11 小时前
SpringBoot + MyBatis-Plus + Dynamic-Datasource 读写分离完整指南
数据库·后端
间彧11 小时前
数据库读写分离下如何解决主从同步延迟问题
后端
码事漫谈11 小时前
C++中的线程同步机制浅析
后端
间彧11 小时前
在高并发场景下,动态数据源切换与Seata全局事务锁管理如何协同避免性能瓶颈?
后端
码事漫谈11 小时前
CI/CD集成工程师前景分析:与开发岗位的全面对比
后端
间彧11 小时前
在微服务架构下,如何结合Spring Cloud实现动态数据源的路由管理?
后端
间彧11 小时前
动态数据源切换与Seata分布式事务如何协同工作?
后端