博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA中抽象类的一些总结
阅读量:4967 次
发布时间:2019-06-12

本文共 1679 字,大约阅读时间需要 5 分钟。

  1. 抽象类和普通类一样,有构造函数。抽象类中有一些属性,可以利用构造方法对属性进行初始化。子类对象实例化的时候先执行抽象类的构造,再执行子类构造。
  2. 抽象类不能用final声明。因为抽象类必须有子类继承,所以抽象类不能使用final定义。
  3. 抽象类不能用static进行声明,但是抽象类中的内部类可以使用static声明。

 

abstract class A{    static abstract class B    {        public abstract void print();    }}class X extends A.B{    public void print()    {        System.out.println(this.getClass());    }}public class Hello{    public static void main(String[] args)  throws Exception    {        A.B ab = new X();        ab.print();    }}

 

输出:class X

 4.抽象类和普通类一样,可以有static方法,且可以通过类名称.方法名的方式进行调用

 

abstract class A{    public static void test()    {        System.out.println("抽象类中的static方法");    }}public class Hello{    public static void main(String[] args)  throws Exception    {        A.test();    }}

 

5. 有些时候抽象类只需要一个特定的系统子类操作,可以对外部隐藏抽象类的实现。这样的设计在系统类库中比较常见,目的是为了隐藏我们不需要的子类实现。

abstract class A{    public abstract void print();    private static class B extends A    {        public void print()        {            System.out.println("打印消息测试");        }    }    public static A getInstance()    {        return new B();    }}public class Hello{    public static void main(String[] args)  throws Exception    {        A a = A.getInstance();        a.print();    }}

6. 观察下面的输出。

abstract class A{    public A()    {        this.print();    }    public abstract void print();}class B extends A{    private int num = 100;    public B(int num)    {        super();        this.num = num;    }    public void print()    {        System.out.println(this.num);    }}public class Hello{    public static void main(String[] args)  throws Exception    {        B b = new B(30);    }}

上面代码输出: 0

 

转载于:https://www.cnblogs.com/kuillldan/p/5905955.html

你可能感兴趣的文章
POJ 3204 Ikki's Story I - Road Reconstruction
查看>>
【BZOJ】2959: 长跑(lct+缩点)(暂时弃坑)
查看>>
iOS 加载图片选择imageNamed 方法还是 imageWithContentsOfFile?
查看>>
toad for oracle中文显示乱码
查看>>
SQL中Group By的使用
查看>>
错误org/aopalliance/intercept/MethodInterceptor解决方法
查看>>
【设计模式】工厂模式
查看>>
两个表格中数据不用是一一对应关系--来筛选不同数据,或者相同数据
查看>>
客户数据库出现大量cache buffer chains latch
查看>>
機械の総合病院 [MISSION LEVEL: C]
查看>>
实战练习细节(分行/拼接字符串/字符串转int/weak和copy)
查看>>
Strict Standards: Only variables should be passed by reference
查看>>
hiho_offer收割18_题解报告_差第四题
查看>>
AngularJs表单验证
查看>>
静态方法是否属于线程安全
查看>>
02号团队-团队任务3:每日立会(2018-12-05)
查看>>
SQLite移植手记1
查看>>
js05-DOM对象二
查看>>
mariadb BINLOG_FORMAT = STATEMENT 异常
查看>>
C3P0 WARN: Establishing SSL connection without server's identity verification is not recommended
查看>>