package demo20201018抽象类1_1;
/*
1.抽象类不能创建对象,创建编译无法通过而报错,只能创建其非抽象子类的对象
2.抽象类中,可以有构造方法,施工子类创建对象时,初始化父类成员使用
理解:子类的构造方法中,有默认的super(),需要访问父类构造方法
3.抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类
4.抽象类的子类,必须重写抽象父类中所有的抽象方法,否则编译无法通过而报错,除非该子类也是抽象类
*/
public class demo {
public static void main(String[] args) {
goidenDog g = new goidenDog();
g.sleep();
g.eat();
}
}
package demo20201018抽象类1_1;
public abstract class Animal {
public abstract void sleep();
public abstract void eat();
}
package demo20201018抽象类1_1;
//子类也是抽象类
public abstract class Dog extends Animal {
public void eat(){
System.out.println("狗吃骨头");
}
/*public void sleep(){
}*/
}
package demo20201018抽象类1_1;
public abstract class Fu {
public Fu(){
System.out.println("抽象父类构造方法执行");
}
public abstract void eat();
}
package demo20201018抽象类1_1;
public class goidenDog extends Dog {
@Override
public void sleep() {
System.out.println("呼呼呼呼");
}
}
package demo20201018抽象类1_1;
/*一个抽象类不一定含有抽象方法
只要保证抽象方法所在的类是抽象类
这样的操作,在特殊场景有用途
*/
public abstract class MyAbstract {
}
package demo20201018抽象类1_1;
public class Zi extends Fu {
public Zi(){
System.out.println("子类构造方法执行");
}
@Override
public void eat() {
System.out.println("吃范");
}
}
抽象3
最新推荐文章于 2023-02-23 18:24:13 发布