学Java第三十四天-----抽象类和抽象方法

一、定义

各个子类的相同方法所包含的内容是不一样的,这时候要用到抽象方法。其实和前面的方法重写@Override是一样的,只不过****抽象方法能做到强制程序员重写方法

二、注意事项

注意:虽然抽象类不能创建对象,但还是要写构造函数,因为抽象类的子类在创建对象时要有属性。所以不管是子类还是父类都要有构造函数。

三、代码示例

1、动物类---父类

java 复制代码
package com.abstractclass.demo2;

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

    public Animal() {
    }

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

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

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

    public void drink(){
        System.out.println("动物在喝水");
    }

    public abstract void eat();
}

2、青蛙类-----子类

java 复制代码
package com.abstractclass.demo2;

public class Frog extends Animal{

    public Frog() {
    }

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

    @Override
    public void eat() {
        System.out.println("青蛙在吃虫子");
    }
}

3、狗类-----子类

java 复制代码
package com.abstractclass.demo2;

public class Dog extends Animal{

    @Override
    public void eat() {
        System.out.println("狗在吃骨头");
    }

    public Dog() {
    }

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

4、山羊类-----子类

java 复制代码
package com.abstractclass.demo2;

public class Goat extends Animal{
    @Override
    public void eat() {
        System.out.println("山羊在吃草");
    }

    public Goat() {
    }

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

注意:1、子类也必须要有构造函数,有参+无参的都要,不然无法创建对象。

2、出现红色波浪线时,先用鼠标点击波浪线,再输入Alt+回车

四、意义

五、总结

相关推荐
014-code11 分钟前
线程池参数怎么配才不翻车
java
吴梓穆12 分钟前
UE5 c++ 常用方法
java·c++·ue5
hoiii18728 分钟前
CSTR反应器模型的Simulink-PID仿真(MATLAB实现)
开发语言·matlab
王夏奇34 分钟前
python中的__all__ 具体用法
java·前端·python
明湖起风了40 分钟前
mqtt消费堆积
java·jvm·windows
Free Tester1 小时前
如何判断 LeakCanary 报告的严重程度
java·jvm·算法
炘爚1 小时前
C++ 右值引用与程序优化
开发语言·c++
si莉亚1 小时前
ROS2安装EVO工具包
linux·开发语言·c++·开源
清心歌1 小时前
CopyOnWriteArrayList 实现原理
java·开发语言
Java成神之路-2 小时前
通俗易懂理解 Spring MVC 拦截器:概念、流程与简单实现(Spring系列16)
java·spring·mvc