多态和接口

 abstract

abstract的意思是:抽象;在java中只要沾上abstract关键字通常会有以下结果:
1 只说话,不做事
2 不能实例化,也就是不能new   
3 要想使用必须方法重写

 

                                                                       

                                         抽象方法

1   抽象方法用abstract关键字修饰,没有方法体.

 2   特点是:只说话不做实事。

 3   只存在抽象方法,不存在抽象构造方法,也不存在抽象静态方法。   

                                                             

                                              接口

1 接口负责功能的声明和规范。     功能具体怎么样实现由其实现类来做。

2 接口的特性:

     2.1   接口中所有的方法都是抽象方法。(1.8版本之后可以有非抽象方法)

     2.2   接口不可以实例化(也就是不可以new)。

     2.3   一个类可以实现多个接口。(因为接口是功能的声明,一个类可以实现的功能不止一个)

     2.4   一个类实现了一个接口,那么这个实现类必须实现这个接口所有的抽象方法。(抽象类例外)

     2.5   接口可以用extends关键字继承接口,并且可以继承多个接口

      2.6  接口不可以有构造方法(构造方法是类才有的)

     对比:类之间的继承,只能继承一个;接口之间的继承可以继承多个;(接口相关的都是多个)

                                             向上转型

1   把一个实列对象,直接赋值给父类对象或实现的接口就是向上转型。

2   转型后只能使用父类或实现类中声明过的方法,其他方法不能使用。

                                  向下转型

1 向下转型是向上转型的逆过程:通过强制转换还原对象本身的面貌。

 

                                    多态

多态(Polymorphism)按字面的意思就是“多种状态”。在面向对象语言中,

接口或父类的多种不同的实现方式即为多态。(改编自百度百科)

                父类(或实现的接口)作为形式参数,子类作为实际输入参数

父类(或接口)作为形式参数,可维护性和可扩展性好。

                                          抽象类

1 类定义时只要加上absract关键字就成为了一个抽象类

2 抽象类无法实列化

3 子类继承抽象类,需要实现所有的抽象方法。(子类也是抽象类时例外)

 (如果子类本身也是抽象类,那么子类在继承抽象类时是不需要实现所有抽象方法的。)

4 抽象类中可以没有抽象方法,但是有抽象方法的类必须被定义为抽象类。

5 抽象类在实现接口或继承抽象类时,是不需要重写父类和接口的抽象方法的,而普通类需要。

   

 

                                      抽象类和接口的区别

1 两者虽然都和抽象方法有关系,但是接口的所有方法都是抽象方法,而抽象类除了抽象方法是可以有普通的方法的。

   大家联系现实中的人事物来记忆。

2 抽象类属于类是有构造函数的,它的构造函数是给子类构造函数调用的,不是用来new的 (因为抽象类无法实列化);

   接口不属于类,是没有构造函数的。

3 抽象类中的非抽象方法,被子类继承后可以被子类直接使用,从而减少代码重复性。

4 一个类只能继承一个抽象类,但是可以实现多个接口。(类都是单继承,接口都是多实现和多继承)

 

                                       抽象类和接口的共性

都代表抽象,和抽象方法有千丝万缕的关系。都不能实列化。

 

      

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值