初学抽象类笔记
1.抽象类里可以没有抽象方法,但是抽象方法一定要在抽象类里.
2.抽象类和抽象方法的使用.
2.1 抽象类必须用继承的方式进行调用.
2.2 抽象类的子类(非抽象类)需要重写父类的抽象方法,否则报错.
2.21 亦或者用抽象类(子类)继承抽象类(父类),可以不写抽象方法.子类依然不可以直接定义.
2.3抽象方法必须重写才能调用.
3.抽象方法是没有方法区的,类似于成员变量不赋值,仅用于占位.没有具体的内容.
4.抽象不可被实例化,如果作为数据类型,则需要重写抽象方法.
4.1抽象类不可以做为数据类型指向子类.
//抽象类
public abstract class Animal {
//抽象类里可以没有抽象方法,但是抽象方法一定要在抽象类里.抽象类里可以有实例方法.
public abstract void eat();
public void sleep(){
System.out.println("动物睡觉");
}
}
---------------------------------------------------------------
//抽象类的非抽象子类
public class Cat extends Animal{
@Override
//必须重写抽象方法.
public void eat() {
System.out.println("猫吃");
}
}
----------------------------------------------------------------
//主方法
public class AnimalDemo {
public static void main(String[] args) {
Animal a=new Cat();
a.eat();
a.sleep();
}
}