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

四、意义

五、总结

相关推荐
小酒窝.2 分钟前
【多线程】多线程打印1~100
java·多线程
君爱学习6 分钟前
基于SpringBoot的选课调查系统
java
APIshop18 分钟前
Java 实战:调用 item_search_tmall 按关键词搜索天猫商品
java·开发语言·数据库
血小板要健康29 分钟前
Java基础常见面试题复习合集1
java·开发语言·经验分享·笔记·面试·学习方法
淼淼76342 分钟前
安装jdk1.8
java·开发语言
PfCoder1 小时前
WinForm真入门(23)---PictureBox 控件详细用法
开发语言·windows·c#·winform
Legendary_0081 小时前
Type-C 一拖二快充线:突破单口限制的技术逻辑
c语言·开发语言
毕设源码-朱学姐1 小时前
【开题答辩全过程】以 高校食堂餐饮管理系统的设计与实现为例,包含答辩的问题和答案
java
过期动态1 小时前
Java开发中的@EnableWebMvc注解和WebMvcConfigurer接口
java·开发语言·spring boot·spring·tomcat·maven·idea
摇滚侠1 小时前
IDEA 定义返回值快捷键
java·ide·intellij-idea