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

四、意义

五、总结

相关推荐
原来是好奇心5 分钟前
深入Spring Boot源码(六):Actuator端点与监控机制深度解析
java·开发语言·源码·springboot
叠叠乐27 分钟前
robot_state_publisher 参数
java·前端·算法
过期动态29 分钟前
JDBC高级篇:优化、封装与事务全流程指南
android·java·开发语言·数据库·python·mysql
WizLC31 分钟前
【Java】各种IO流知识详解
java·开发语言·后端·spring·intellij idea
Mr.朱鹏33 分钟前
SQL深度分页问题案例实战
java·数据库·spring boot·sql·spring·spring cloud·kafka
小张快跑。37 分钟前
【Java企业级开发】(十一)企业级Web应用程序Servlet框架的使用(上)
java·前端·servlet
星星不打輰37 分钟前
SSM项目--SweetHouse 甜蜜蛋糕屋
java·spring·mybatis·ssm·springmvc
傻啦嘿哟39 分钟前
实战:用Splash搞定JavaScript密集型网页渲染
开发语言·javascript·ecmascript
Knight_AL42 分钟前
Java 线程池预热(Warm-up)实战:开启与不开启到底差多少?
java·开发语言
爬山算法44 分钟前
Netty(15)Netty的线程模型是什么?它有哪些线程池类型?
java·后端