8.接口与多态

抽象类

  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关键字

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.import static是Java 5增加的功能,就是将Import类中的静态方法,可以作为本类的静态方法来...
    XLsn0w阅读 4,999评论 0 2
  • 面向对象主要针对面向过程。 面向过程的基本单元是函数。 什么是对象:EVERYTHING IS OBJECT(万物...
    sinpi阅读 4,741评论 0 4
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,897评论 18 399
  • 具体说明 参考http://mirrors.163.com/
    浮崖阅读 2,350评论 0 0
  • //以””为分界将字符拆分为2个str = @“26_1”;NSString *bloggerID = [str...
    onlyyourself阅读 1,501评论 0 0