编程语言
首页 > 编程语言> > 抽象类,抽象方法。检测面向抽象编程

抽象类,抽象方法。检测面向抽象编程

作者:互联网

package cn.jhf.study;
//抽象类,抽象方法。检测面向抽象编程
public class TestAbstract {
    public static void main(String[] args) {
        // Shoes s = new Shoes(); 这里会报错。因为抽象类是不能被实例的,无法创建抽象类的对象
        //要用多态的方式创建对象
        //抽象父类不能创建自己的对象,所以父类的构造方法是不能运行的。
        //父类的构造方法是供给子类的对象使用的,通过子类的构造方法内使用super()调用父类构造方法
        Shoes s1 = new Nike();
        s1.run();
        s1.jump();
    }

}
//创建抽象父类
abstract class Shoes{
    //抽象类可以有成员变量
    String brand;
    double size;

    //抽象类可以有构造方法
    public Shoes(){
        System.out.println("父类的无参构造");
    }
    public Shoes(String a){
        System.out.println("父类的含参构造"+a);
    }

    //创建抽象方法。抽象方法是被abstract修饰的没有方法体的方法
    abstract public void run();

    //也可以创建普通方法
    public void jump(){
        System.out.println("穿上之后能跳出宇宙");
    }
}
//创建子类
class Nike extends Shoes{
    //创造子类构造方法
    public Nike(){
        super("空军一号");//默认这里有super()调用父类的无参构造方法.但是可以改参数调用对应父类的含参构造方法
        System.out.println("子类Nike的无参构造方法");
    }

    //重写父类的抽象方法。
    //要么子类也是被abstract修饰的抽象类,要么子类必须重写父类里的抽象方法
    public void run(){
        System.out.println("穿上它就是飞毛腿");
    }

}

标签:Shoes,构造方法,子类,编程,抽象,抽象类,父类,public
来源: https://www.cnblogs.com/jhfnewstart/p/14863558.html