多态和接口

     1、抽象类的格式
                  abstract class 父类名(Animal){
            }
     2、抽象方法的格式:
           public abstract(必须写)  方法名() ;  //抽象方法
          注意:
             1)如果一个类中有抽象方法,那么这个类一定抽象类
              2)抽象类中一定有抽象方法吗? 还可以非抽象的
     3、抽象类的特点:
             1)抽象类不能直接实例化(不能直接创建对象)
             2)子类必须重写父类的抽象功能 
     4、抽象类的子类:
          1)抽象类的子类如果是抽象类呢? 没有任何意义,因为使用的就是通过具体类创建对象,具体类都抽象类,没意义!
         2)子类是具体类的话,对象的创建工作,由子类完成--->父类名  对象名 = new 子类名() ; 抽象类多态
     5、抽象类成员的特点:
         成员变量:                     可以是变量,也可以是一个常量(自定义常量)
         构造方法:             所有的构造方法都是给对象进行初始话:1)默认初始化 2)显示初始化
          成员方法:             可以是抽象的方法,也可以非抽象的方法
     6、多态的前提条件:
          1)必须有继承关系
         2)必须方法重写
        3)必须有父类引用指向子类对象        :向上转型
                 格式:
                     父类名  对象名  = new 子类名() ;

     7、多态中的成员访问特点
          1)成员变量的访问特点:
             编译看左,运行看左    (左:父类)
         2)成员方法(一般没有强调静态方法都是非静态的)的访问特点:
             编译看左,运行看右
         3)构造方法:作用:就是给对象进行初始化的
          4)静态的成员方法的访问特点:
             编译看左,运行看左(静态的成员方法算不上方法重写,因为静态的都和类有直接关系!)
     8、多态的好处:
          1)提高代码的扩展性(由多态保证)
          2)提高代码的维护性(由继承关系)    
     9、多态的弊端:
            不能访问子类特有功能
          最优秀的解决方式:使用向下转型:将父类对象强制转换为子类的引用
              格式:                 子类名  子类对象名 = (子类名)父类的对象;
        注意:         向下转型使用不当的时候,会出现一个异常:ClassCastExceptino:类转换异常类的初始化
     10、继承过程中,分层初始化;首先父类初始化,然后是子类。
              创建一个类的对象的时候,是通过构造方法创建对象,构造方法的作用:给对象进行初始化话的
     11、接口:
         将一些额外(扩展)功能,暴露出来,只要哪些类实现了这个接口,就一定要取实现接口中的功能!
          格式:
          interface 接口名{
              
          }
  
     12、接口的实现类和接口之间是一种实现关系
         class 类名  implements(实现) 接口名{
          
          }
     13接口的子实现类:
          1)如果接口的实现类是一个抽象类;没有意义,接口本身不能实例化,需要通过子实现类来进行实例化,如果子实现类
  都被抽象了,不能创建对象了,这种没意义!
          2)接口的实现类是具体类,接口名 对象名 = new 子实现类名() ; 接口多态(推荐方式:开发中这种方式最多)
  
     14、接口不能实例化(不能创建对象)
        实际开发中命名规则:
                 实现类命名规则:接口名+impl :实现类
          接口的成员特点:
          成员变量:
              存在默认的修饰符:    public static finla
          构造方法:接口中没有构造方法
          成员方法:
              默认的修饰符:public abstract
     15、类和类,类和接口,接口和接口关系的区别:
      类与类的关系
             extends:继承关系     单继承,不能多继承,但是可以多层继承
      类与接口的关系:implements :实现关系 ,并且一个类继承另一个类的同时还能实现多个接口
      
      接口与接口的关系:
              extends关系:可以是单继承,可以是多继承的!
 任何类都需要继承自Object类,代表所有类的根类.
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值