当前位置: 首页 > article >正文

面向对象进阶-抽象类

抽象方法

将共性行为(方法)抽取到父类,由于每个子类执行内容不一样,在父类不能确定具体的方法体,该方法可以定义为抽象方法。

抽象类:如果一个类中存在抽象方法,那么该  类必须声明为抽象类。

抽象方法定义格式:public abstract 返回值类型 方法名(参数列表);  不写方法体

抽象类定义格式: public abstract class 类名{}

注意事项

  • 抽象类不能实例化
  • 抽象类不一定有抽象方法,有抽象方法的类一定是抽象类。
  • 抽象类可以有构造方法(当创建子类对象时,给属性赋值用的)
  • 抽象类的子类:要么重写抽象类所有抽象方法,要么是抽象类(需要继续创建子类重写)。

案例

public abstract class Animal {
    private int age;
    private String name;

    public Animal() {
    }

    public Animal(int age, String name) {
        this.age = age;
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public abstract void eat();
    public void drink(){
        System.out.println("heshui");
    }
}
public class Dog extends Animal{
    public Dog() {
    }

    public Dog(int age, String color) {
        super(age, color);
    }


    @Override
    public void eat(){
        System.out.println("吃骨头");
    }
}
public class frog extends Animal{
    public frog() {
    }

    public frog(int age, String name) {
        super(age, name);
    }

    @Override
    public void eat() {
        System.out.println("吃虫子");
    }
}
public class sheep extends Animal{
    @Override
    public void eat() {
        System.out.println("chicao");
    }
}
public class Test {
    public static void main(String[] args) {
        frog f=new frog(1,"小绿");
        System.out.println(f.getAge()+f.getName());
        f.eat();
        f.drink();

    }

}


http://www.kler.cn/a/412827.html

相关文章:

  • day2全局注册
  • 数据结构——排序算法第二幕(交换排序:冒泡排序、快速排序(三种版本) 归并排序:归并排序(分治))超详细!!!!
  • Web 学习笔记 - 网络安全
  • CUDA补充笔记
  • git: 修改gitlab仓库提交地址
  • 【8210A-TX2】Ubuntu18.04 + ROS_ Melodic + TM-16多线激光 雷达评测
  • Python基础学习-11函数参数
  • 视觉经典神经网络与复现:深入解析与实践指南
  • node.js中实现router模块化管理
  • hive的cascade使用解释
  • 泛型擦除是什么?
  • MongoDB 语法简析
  • 贴代码PasteForm框架之框架核心帮助类PasteFormHelper说明
  • go clean -modcache命令清理缓存
  • 使用 Tkinter 创建一个简单的 GUI 应用程序来合并视频和音频文件
  • 线程与进程的个人理解
  • 安全设备-日志审计-规则配置
  • JavaEE进阶-----mybatis操作数据库(新手教程)
  • 40分钟学 Go 语言高并发:【实战】并发安全的配置管理器
  • 文本处理之sed
  • 机器学习基础--基于线性回归房价预测
  • 【好玩的经典游戏】Docker环境下部署贪吃蛇网页小游戏(二)
  • uniapp运行时,同步资源失败,未得到同步资源的授权,请停止运行后重新运行,并注意手机上的授权提示。
  • 钟睒睒的“傲慢与偏见”
  • vue3表单输入相关修饰符使用
  • AI写论文指令