Java 面向对象 8——抽象类和抽象方法(知识点 + 使用方法)
面向对象编程 Java 抽象类和抽象方法一、前言本文会梳理有关抽象类和抽象方法的知识点,这会运用在接口中,而接口是在实际开发中非常重要的,所以知识点非常重要
二、抽象方法抽象方法就是以 abstract 修饰的方法,这种方法只声明返回的数据类型、方法名称和所需的参数,没有方法体,也就是说抽象方法只需要声明而不需要实现
2.简单记忆方法概念听起来很复杂难懂,那我们举例说明
比如有三个人 A、B、C 的职业都是程序员,到了返点都要吃饭,但是每个人吃的东西不一样,有人吃爱心便当,有人吃盒饭,有人吃快餐,那么他们都有共同的方法:吃,并且他们都可以同属于一个父类:程序员,那么我们可以 把共同的方法吃抽取到父类(程序员)中 , 由于子类(ABC 三个人) 吃的东西不相同,即 方法体不同 ,所以 要把该方法定义为抽象方法
3.代码格式修饰符 abstract 返回值类型 方法名 (参数列表);例如
public abstract void eat();]4.使用说明如果要继承父类中的抽象方法,则必须重写该方法,否则就让子类也变为抽象类
示例:
如果想要偷懒的话,点击 Alt+Enter 来查看解决方法
我们在这里选择第二个,实现方法
一个是父类中的抽象方法,另一个一个是接口(这个下一篇文章中会讲到)我们只需要全选然后点击回车就会自动帮我们生成重写的方法了
此时我们只要改写方法体即可
三、抽象类当某一个类中存在抽象方法,那么这个类就要被定义为抽象类
2.代码格式 abstract class 类名 {
}例如:
abstract class Student {
}3.使用说明继承抽象类的子类 必须重写父类所有的抽象方法 。否则,该子类也必须声明为抽象类
4.注意点抽象类不能实例化
抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类。理解:未包含抽象方法的抽象类,目的就是不想让调用者创建该类对象,通常用于某些特殊的类结构设计。
当我们在一个非抽象的类中写抽象方法时,会报错
但是在抽象类中写非抽象方法,又不会报错
抽象类的子类,必须重写抽象父类中所有的抽象方法,否则子类也必须定义成抽象类,编译无法通过而报错。
四、小练习属性 行为青蛙 Frog 名字、年龄(1) 吃虫子、喝水狗 Dog 名字、年龄(2) 吃骨头、喝水兔子 名字、年龄(3) 吃胡萝卜、喝水 eat 是抽象方法,吃的东西不同,而 drink 都是喝水,所以不用使得该方法变为抽象方法
3.代码实现:one:父类 public abstract class Animal {
}:two:Frog 类 public class Frog extends Animal implements Swim {
}:three:Dog 类 public class Dog extends Animal implements Swim {
}:four:Rabbit 类 public class Rabbit extends Animal{
}:five:测试类 public class Test {
}
评论