package com.ys_01;
/*
* abstract用于修饰方法和类
* 还有就是:抽象类不能创建对象(即实例化)
* 抽象类可以有非抽象的方法
*/
public class AbstractDemo01 {
public static void main(String[] args) {
}
}
abstract class Animal{
public abstract void eat();//抽象类:没有具体的方法体,只抽取声明,另外有抽象方法的类必须是抽象类
public void run() {
// 非抽象方法子类可以不重写
}
}
class Dog extends Animal{
@Override
public void eat() {
}
}
abstract class Cat extends Animal{
// 假如是抽象类继承了抽象类,那么他就不必重写原来类的抽象方法!
}
// abstract关键字因为用途是重写,而final不能被改变 故冲突
// 它需要被继承,而private看不见,故也继承不了,冲突
// 抽象类有构造方法! 因为它有属性,有成员变量需要被初始化,而且它是类,是需要被子类继承的,是会被调用其构造方法
12-11