抽象类

抽象类:1.有抽象方法的类只能被定义成抽象类,抽象类里可以没有抽象方法。

                2.抽象类不能被实例化,无法使用new关键字来调用抽象类的构造器,来创建抽象类的实例。抽象类的构造器不能用于创建抽象的实例,主要用来被其子类调用。

                3.抽象方法与空方法:

                                                     public abstract void test();抽象方法

                                                     public void test(){};是一个普通的方法,已经定义了方法体,只是方法体内为空。

 

                 4.抽象类里定义的普通初始化块,构造器不是在创建该类的对象时被创建,而是在创建其子类的实例时被调用。抽象类不能用于创建实例,只能被当父类被其他子类继承。

                 

                      1.       abstract修饰类:表明该类只能被继承

                      2.       abstract修饰方法时,表明这个方法必须由子类提供实现(重写)

                      而final修饰的类不能被继承,final修饰的方法不能被重写,因此final不能和abstract同时使用

                      3.当static修饰方法时,表明这个方法属于当前类,可以通过类来调用,如果该方法被定义成抽象方法,既调用了一个没有方法体的方法,肯定会引起错误,因此static不能和abstract同时修饰某个方法

                      4.Abstract修饰的方法必须被其子类重写才有意义,否则这个方法将永远不会有方法体,因此abstract方法不能被定义为private访问权限,既private和abstract不能同时使用

                       Abstract不能修饰属性,不能修饰局部变量,不能修饰构造器。

抽象类的作用:

                        1.      抽象类体现的就是一种模板式的设计,抽象类作为多个子类的通用模板,子类在抽象类的基础上进行扩展,改造,但子类总体上会大致保留抽象类的行为方式。

                        2.  模板模式规则:

                                                     1.       抽象父类可以只定义需要使用的某些方法,其余则留给其子类实现

                                                     2.       父类中可能包含需要调用的其他系列方法的方法,这些被调用的方法既可以由父类实现,也可以由其子类实现,父类里提供的方法只是定义了一个通用的算法,其实现也许并不完全由自身实现,而是必须依赖于其子类的辅助。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值