package abstract1.demo01;
//使用abstract关键字修饰的类叫做抽象类
public abstract class Father {
public static void main(String[] args) {
}
/*
* 使用abstract修饰的方法叫做抽象方法 抽象方法不能有方法体{}
*/
public abstract void method();
public abstract void eat();
public abstract void sleep();
public abstract void go();
public void testNoAbstract() {
System.out.println("抽象类中可以有非抽象方法");
}
}
------------------------------------------
package abstract1.demo01;
/*抽象类继承后两种写法:
* 1.如果不继承,子类也要是抽象类
* 2.如果子类继承父类,要重新父类方法
*/
//如果不继承,子类也要是抽象类
/*public abstract class Sun extends Father{
}*/
//如果不继承,子类也要是抽象类
public class Sun extends Father {
// 该继承抽象类只重写父类的抽象方法,非抽象方法不会自动生成,需要手动调用
@Override
public void method() {
}
@Override
public void eat() {
}
@Override
public void sleep() {
}
@Override
public void go() {
}
}
-------------------------------------
package abstract1.demo01;
public class TestAbstract {
public static void main(String[] args) {
// 抽象类不能创建抽象类的对象
// 子类继承父类,抽象类是有构造方法的
Sun sun = new Sun();
sun.eat();
sun.sleep();
sun.go();
sun.method();
sun.testNoAbstract();
}
}