一、抽象的介绍
1、抽象类怎么来的?
抽象公共方法,放到父类中,发现方法没法实现,因为每个子类的方法实现细节不一样,此时方法说不清,道不明,可以定义为抽象方法。
2、关键字:abstract
3、抽象方法
修饰符 abstract 返回值类型 方法名(参数):
抽象方法没有方法体
4、抽象类
public abstract class 类名{}
5、注意
a、抽象方法所在的类一定是抽象类
b、抽象类中不一定非要有抽象方法
c、子类继承父类之后,需要重写父类中的所有抽象方法,不然编译会报错。
d、抽象类不能new对象,只能通过new子类对象调用重写方法
6、可以将抽象类看成是一类事物的标准,要求只要是属于一类的,都必须要拥有抽象类中的方法,必须要实现。怎么证明拥有了 ,怎么证明实现了?===>重写。
至于方法怎么实现,就看子类怎么去重写这个方法体。
二、抽象的注意事项
1、抽象类不能直接new对象,之只能创建非抽象的子类对象。
2、抽象类中不一定非得有抽象方法,抽象方法所在的类一定是抽象类。
3、抽象类的子类,必须重写父类中所有的抽象方法,否则,编译报错,除非子类也是抽象类。
4、抽象类中可以有成员变量、构造方法、成员方法。
5、抽象类中可以有构造方法,是提供子类创造对象时,初始化父类属性使用的。
public abstract class Animal { public abstract void eat(); public abstract void drink(); public void method(){ System.out.println("可以有非抽象的方法"); } } public class Dog extends Animal{ @Override public void eat() { System.out.println("小狗吃骨头"); } @Override public void drink() { System.out.println("小狗喝水"); } } public class Test { public static void main(String[] args) { Dog dog = new Dog(); dog.drink(); } }