美文网首页
8.接口与多态

8.接口与多态

作者: ccc_74bd | 来源:发表于2017-09-20 20:26 被阅读0次

    抽象类

    1. 有些类不该被初始化(例如Animal,因为现实中没有Animal对象存在),为了防止Animal类被初始化,可以将其标记为抽象类——在类的声明前面加上抽象类关键词abstract


    2. 具体类——非抽象的类就是具体类
    3. 抽象的方法——除了类之外,也可以将方法标记成抽象的,抽象方法必须被覆盖过才能调用,抽象方法没有方法体——publicabstractvoideat();//没有{}
      如果要声明出一个抽象的方法,就必须将类也标记为抽象的,不能在非抽象类中拥有抽象方法
      必须实现所有抽象的方法——这表示在继承树下的第一个具体类必须要实现出所有的抽象方法
    4. Object类是所有类的父类
      每个对象都拥有的方法(可覆盖)
      A.equals(Objecto)——判断两个对象是否相等
      B.getClass()——告诉你该对象是什么类(从哪里被初始化的)
      C.hashCode()——列出该对象的哈希代码(对象唯一的ID)
      D.toString()——列出类的名称和一串我们不关心的数字
      任何从ArrayList<Object>取出的东西都会被当作Object类型的引用而不管它原来是什么
      当一个变量被声明为Object类型的对象所引用时,它无法再赋值给原来类型的变量
      编译器是根据引用类型(而不是对象类型)来判断有哪些method可以调用



      o作为Object的引用,只能调用Object的方法,而不能调用bark()方法
      越处于继承树的下端,遥控器的按钮(引用)越多,Object引用的对象按钮最少
      如果想要调用Dog类的方法,可以从Object中拷贝出一个Dog引用,并赋值给Dog引用变量

    接口

    使用接口的目的:接口可以实现多重继承又不会出现致命方块的问题
    实现方法:把全部的方法设置为抽象的(接口就像是100%纯天然抽象类)
    接口的定义:publicinterfacePet{...};
    接口的实现:publicclassDogextendsCanineimplementsPet{...};
    不同继承树的类也可以实现相同的接口
    类可以实现多个接口
    接口的方法都是publicabstract的(默认的)
    要从子类调用父类的方法可以用super关键字

    相关文章

      网友评论

          本文标题:8.接口与多态

          本文链接:https://www.haomeiwen.com/subject/laxasxtx.html