zoukankan      html  css  js  c++  java
  • 接口与抽象类(深入多态)

    1、通过将类标记为抽象类,即abstract,则这个类不能被初始化,即不可以创建出任何的实例对象。

    2、抽象的方法:出了抽象类之外,方法也可以被声明为abstract,被声明为abstract 的方法没有实体,代表此方法一定要被覆盖过。当然抽象的类也一定要extends过。

    3、如果声明出一个抽象的方法,那么就必须将类也标记为抽象的,不可以在非抽象的类中声明抽象的方法。

    4、在java中所有的类都是从Object这个类继承出来。由于每个类都是Object的子类,所以A rrayList可以处理所有的类。没有直接继承过其他类的类会是隐含的继承对象。例如Dog类没有直接继承Object对象,但是实际上是通过animal继承了Object对象。

    5、Object类不是抽象类,因为其是可以被实例化的,其实其可以被所有类继承下来的方法都可以实现程序代码。Object类的意义:作为多态让方法可以应付多种类型的机制,以及提供java在执行期间对任何对象都有需要的方法的实现程序代码。

    6、编译器是根据引用的类型来判断有哪些method可以使用,而不是根据Object确定的类型。

    7、当你把对象装进ArrayList<Object>时,不管它原来是什么,你只能把它当做Object,从ArrayList<Object>取出引用时,引用的类型只会是Object.

    当然可以对其进行强制转换,例如:Object o=a1.get(index); Dog d=(Dog)o; d.roam();在转换之前可以使用instanceof 进行检测。这样子若是转换出错,则会在执行期与与遇到classCastexception异常终止。

    更多嵌入式linux及编程学习交流的文章,请访问我的个人网站”恩享网” :http://www.enxiang.icoc.cc,期待与您共同进步。

  • 相关阅读:
    袁绍的刁难(recruitment.pas/cpp)
    数列分块入门 5 总结
    【五校联考3day1】旅游
    【五校联考3day1】食物
    jzoj 1274. 游历的路线(lines.pas/cpp)
    thinkphp框架开发功能要求
    java中 Bouncycastal库的使用
    Spring+Quartz实现定时任务的配置方法
    java缓存的使用
    Java注解教程:自定义注解示例,利用反射进行解析
  • 原文地址:https://www.cnblogs.com/LJTbozai/p/3059476.html
Copyright © 2011-2022 走看看