学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+回车

四、意义

五、总结

相关推荐
qq_336313931 小时前
java基础-字符串
java
纵有疾風起2 小时前
C++—string(1):string类的学习与使用
开发语言·c++·经验分享·学习·开源·1024程序员节
Molesidy2 小时前
【随笔】【QT】QT5.15.2版本的最新下载方式!!!
开发语言·qt
二进制person3 小时前
Java EE初阶 --多线程2
java·开发语言
yue0083 小时前
C#理论学习-WinForm实践开发教程总结
开发语言·学习·c#
007php0074 小时前
某游戏大厂 Java 面试题深度解析(四)
java·开发语言·python·面试·职场和发展·golang·php
Mr.Jessy4 小时前
Web APIs学习第一天:获取 DOM 对象
开发语言·前端·javascript·学习·html
午安~婉4 小时前
javaScript八股问题
开发语言·javascript·原型模式
想不明白的过度思考者4 小时前
Rust——异步递归深度指南:从问题到解决方案
开发语言·后端·rust
西西学代码5 小时前
Flutter---个人信息(5)---持久化存储
java·javascript·flutter