java笔记13:面向对象-抽象类和抽象方法
2.抽象类
1)什么是抽象类
在程序中不存在对象 或不使用这个类对象的类
2)怎么定义抽象类
在class前加abstract关键字
<访问修饰符> abstract class <类名> { //TODO }
3)抽象类的特征
- 3.1)抽象类不能实例化
- 3.2)抽象类中能够编写抽象方法
- 3.3)抽象类中的抽象方法数量不限
3.抽象方法
1) 什么是抽象方法: 抽象方法是没有方法体的方法
2) 怎么定义抽象方法
<修饰符> abstract <返回值> <方法名>(参数列表);
3) 抽象方法的特征
- 3.1)抽象方法没有方法体
- 3.2)子类中必须重写 父类中的抽象方法 除非子类也是抽象类
3.3)抽象方法必须在抽象类中
PS:abstract和final关键字
是冲突的
完成作业
抽象类和抽象方法
1) 定义一个抽象类Fruit(水果)
定义个抽象方法eat()
定义一个Apple苹果类继承Fruit 重写eat方法
定义一个Banana香蕉类继承Fruit 重写eat方法
测试类中
实例化子类对象赋给父类引用
调用eat方法测试
水果类 Fruit.java
package oopday06;
public class Banana extends Fruit{
public void eat(){
System.out.println("剥开皮吃");
}
}
苹果类 Apple.java
package oopday06;
public class Apple extends Fruit{
public void eat(){
System.out.println("削皮吃");
}
}
香蕉类 banana.java
package oopday06;
public class Banana extends Fruit{
public void eat(){
System.out.println("剥开皮吃");
}
}
测试类 TestDemo.java
package oopday06;
public class TestDemo {
public static void main(String[] args) {
Fruit apple=new Apple();
Fruit banana=new Banana();
apple.eat();
banana.eat();
}
}