Java 简单java类抽象类小🌰

package com.jasonote.classStudy;

/**
 * Created by Jasonote on 2017/11/26.
 * 抽象类的使用
 * |- 抽象类继承子类里面会有明确的方法覆写要求,而普通类并没有
 * |- 抽象类之比普通类多了一些抽象方法的定义,其他的组成部分与普通类完全一致
 * |- 普通类对象可以直接实例化,但是抽象类的对象必须经过向上转型之后才可以得到实例化对象
 * <p>
 * 抽象类的限制
 * |- 抽象类里面由于会存在一些属性,可以在抽象类中的构造方法里进行初始化;执行顺序为先执行父类的构造,再调用子类的构造
 * |- 抽象类不能使用final定义;因为抽象类必须有子类,而final定义的类不能有子类
 * |- 外部抽象类不允许使用static声明,而内部的抽象类允许使用static 声明,使用static 声明的内部抽象类就相当于一个外部的抽象类,继承的说话使用"外部类.内部类"
 * |- 任何情况下,如果要执行类中的static方法的时候,都可以在没有对象的时候直接调用,对于抽象类也是一样
 * |- 有些时候,由于抽象类只需要一个特定的系统子类操作,所以可以忽略掉外部的子类
 * <p>
 * 抽象类应用
 */
public class AbstractClass {
    public static void main(String[] args) {
        AbsA absa = new AbsAExtends();
        absa.fun();
        absa.fun2();

        X x = new X();
        x.print();


        AAA aaa = AAA.getInstance();
        aaa.print();

        //
        BBBB bbbb = new BBBB(9999);
        bbbb.print();
    }
}

abstract class AbsA {
    public void fun() {
        System.out.println("AbsA fun");
    }

    public abstract void fun2();
}

/**
 * 一个子类只能够继承一个抽象类
 */
class AbsAExtends extends AbsA {

    @Override
    public void fun2() {
        System.out.println("覆写抽象类的fun2");
    }
}

abstract class AA {
    static abstract class AAa {
        public abstract void print();
    }
}

class X extends AA.AAa {

    @Override
    public void print() {
        System.out.println("+++++++++++");
    }
}

abstract class AAA {
    public abstract void print();

    private static class B extends AAA {
        @Override
        public void print() {
            System.out.println("抽象内部子类B覆写父类的方法");
        }
    }

    public static AAA getInstance() {
        return new B();
    }
}

abstract class AAAA {
    public void AAAA() {
        this.print();
    }

    public abstract void print();
}

class BBBB extends AAAA {
    private int num = 100;

    public BBBB(int num) {
        this.num = num;
    }

    @Override
    public void print() {
        System.out.println("num:" + num);
    }
}


Jason.wang

When you find your talent can't afford to be ambitious, be quiet and study !

You may also like...