抽象方法:
仔细观察以下代码有什么问题
```
public abstract class GZ(){
public void show(){
//...
}
}
```
分析:
抽象方法,我们来看,这是我们写的一个输出输出信息
的方法,输出信息的方法,这个方法呢,我们在每个子类当
中都有不同的事情,如果在每个子类当中都都有不同的实现
的话,也就意味着他在负类当中的实现是没有意义,这种情
况下我们去,如何把父类的这个方法,去定义层,没有带哪
块儿的,方法,这就需要我们用抽象方法,什么是触觉方法
,语法比较简单,只需要在方法返回值的前面加上LSITY。
抽象方法的特点:
- 抽象方法没有方法体
- 抽象方法必须定义在抽象类中
- 抽象方法必须在非抽象子类中被重写
- public abstract void show();
## 代码理解:
父类代码如下:
publicabstractclassGZ { privateStringname; privateintage; privateStringsex; //姓名publicStringgetName(){ returnname; } publicvoidsetName(Stringa){ this.name=a; } //年龄publicintgetAge(){ returnage; } publicvoidsetAge(intb){ this.age=b; } //性别publicStringgetSex(){ returnsex; } publicvoidsetSex(Stringc){ this.sex=c; } publicvoidCc(Stringa,intb,Stringc){ this.setName(a); this.setAge(b); this.setSex(c); } publicabstractvoidshow(); }
子类代码如下:
classDemoextendsGZ { publicstaticvoidmain(String[] args) { } publicvoiddc(Stringsex){ this.setSex(sex); } publicvoidshow(){ System.out.println(super.getName()); System.out.println(super.getAge()); System.out.println(super.getSex()); } }
解析:
我们现在定在这里边是没有问题的,因为这个,
父类是抽象的,当我们把父类的这个abstract去掉
的话,我们可以看到报错了,错误的提示信息告诉
我们,这个配置类必须是一个抽象类才可以定义抽
象方法,也就是说,抽象方法必须包含在抽象类当
中,但是抽象类中不一定包含,抽奖方法,好,这
是这个特点,当我们这个累,抽象类里面的这个方
法定义为抽象方法了以后,我们可以看到,这个就
不能再用了,因为他没有实现,他没有方法体,
他就报错了。
抽象类可以限制被实例化
抽象方法可以起到约束子类行为的作用
总结
这是我们介绍的,抽象方法,抽象方法和抽象类
的形式非常简单,大家重点要理解,为什么用抽象类,
抽象方法的特点是什么,这个阶段呢,我们就讲到这
儿,接下来大家就可以根据我们讲解的知识去练习一
下抽象类,抽象类的定义和继承,抽象方法的定义和
重写,修改GZ类为抽象类,修改配置类里面的方法
为抽象方法输出相关信息。