Java编程之抽象方法

举报
魏铁锤 发表于 2022/09/20 23:50:43 2022/09/20
【摘要】 ## 抽象方法: - 仔细观察以下代码有什么问题 ``` public abstract class GZ(){ public void show(){ //... } } ``` ## 分析: 抽象方法,我们来看,这是我们写的一个输出输出信息 的方法,输出信息的方法,这个方法呢,我们在每个子类当 中都有不同的事情,如果在每个子类当中都都有不

抽象方法:

  • 仔细观察以下代码有什么问题
public abstract class GZ(){
    public void show(){
    //...
    }
}

分析:

    抽象方法,我们来看,这是我们写的一个输出输出信息
的方法,输出信息的方法,这个方法呢,我们在每个子类当
中都有不同的事情,如果在每个子类当中都都有不同的实现
的话,也就意味着他在负类当中的实现是没有意义,这种情
况下我们去,如何把父类的这个方法,去定义层,没有带哪
块儿的,方法,这就需要我们用抽象方法,什么是触觉方法
,语法比较简单,只需要在方法返回值的前面加上LSITY。

抽象方法的特点:

  • 抽象方法没有方法体
  • 抽象方法必须定义在抽象类中
  • 抽象方法必须在非抽象子类中被重写
  • public abstract void show();

代码理解:

父类代码如下:
image.png

public abstract class GZ {
    private String name;
    private int age;
    private String sex;
    //姓名
     public String getName(){
         return name;
     }
     public void setName(String a){
         this.name=a;
     }
     //年龄
     public int getAge(){
         return age;
     }
     public void setAge(int b){
         this.age=b;
     }
     //性别
     public String getSex(){
         return sex;
     }
     public void setSex(String c){
         this.sex=c;
     }
     public  void Cc(String a,int b,String c){
         this.setName(a);
         this.setAge(b);
         this.setSex(c);
     }
    public abstract void show();
}

子类代码如下:

image.png

class Demo extends GZ {
    public static void main(String[] args) {

    }
    public void dc(String sex){
        this.setSex(sex);
    }
    @Override
    public void show(){
        System.out.println(super.getName());
        System.out.println(super.getAge());
        System.out.println(super.getSex());
    }
}

解析:

    我们现在定在这里边是没有问题的,因为这个,
父类是抽象的,当我们把父类的这个abstract去掉
的话,我们可以看到报错了,错误的提示信息告诉
我们,这个配置类必须是一个抽象类才可以定义抽
象方法,也就是说,抽象方法必须包含在抽象类当
中,但是抽象类中不一定包含,抽奖方法,好,这
是这个特点,当我们这个累,抽象类里面的这个方
法定义为抽象方法了以后,我们可以看到,这个就
不能再用了,因为他没有实现,他没有方法体,
他就报错了。
抽象类可以限制被实例化
抽象方法可以起到约束子类行为的作用

总结

    这是我们介绍的,抽象方法,抽象方法和抽象类
的形式非常简单,大家重点要理解,为什么用抽象类,
抽象方法的特点是什么,这个阶段呢,我们就讲到这
儿,接下来大家就可以根据我们讲解的知识去练习一
下抽象类,抽象类的定义和继承,抽象方法的定义和
重写,修改GZ类为抽象类,修改配置类里面的方法
为抽象方法输出相关信息。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。