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(); }}