Head First Java 总结(六)
2017-10-14 21:10
274 查看
第八章 接口与抽象类
抽象
抽象类
抽象类是无法初始化的类什么时候使用抽象类?
在现实生活中无法new出一个对象的类,如猫和狗继承自动物Animal,但是Animal并没有现实意义的对象,可以new出一个猫,但却不能new出一个动物来。因此需要将Animal父类抽象。
抽象方法
抽象的方法代表此方法一定要被覆盖过抽象的方法没有实体
方法抽象,类必须抽象;类抽象,方法可抽象可不抽象
对于抽象方法的处理:实现或继续抽象,转给下一层继承类处理
object类
object类是所有类的父类方法:
Boolean equals(Object o) 判断两个对象是否为同一个对象(是否是内存中的同一块存储单元)
int hashCode(Object o)返回此对象的哈希值
class getClass(Object o)返回此对象的父类
String toString(Object o)返回类的名称+哈希编码
类型转换
public void go(){ Dog aDog=new Dog(); Object sameDog=getObject(aDog); } public Object getObject(Object o){ return o; }
这段代码实际用到了object类型的多态引用
编译器是根据引用类型来判断有哪些方法可以调用,如:
ArrayList<Dog> a1=new ArrayList<Dog>(); Dog bDog=new Dog(); a1.add(bDog); Object o=a1.get(0); o.bark(); . . . ... class Dog{ . . . public void bark(){ System.out.println("wang"); } . . ... }
以上代码o的引用类型为Object,并没有bark()方法;编译器只管引用的类型,而不是对象的类型。
需要进行类型转换:
Dog d=(Dog)o; d.bark();
只有在引用变量的类确实有该方法才能调用它。
接口
接口作用:扩展对象功能接口中的方法都是抽象的,用类实现该接口并实现方法。
相关文章推荐
- Head First Java 总结(四)
- Head First Java 总结(五)
- Head First Java 总结(三)
- java基础(总结Head First Iava一书)
- Head First Java 总结(二)
- Head First Java 总结
- java基础十一[远程部署的RMI](阅读Head First Java记录)
- <Head First Java>学习笔记--第三章:primitive主数据类型和引用
- 【Head First Java 读书笔记】(五)编写程序
- Head First Java笔记(六)
- head first java 笔记 chapter 4~7
- 读书笔记——《Head First Java》简单的聊天程序实例
- HeadFirstJava学习心得——网络编程
- mew, head first Java
- HEAD FIRST JAVA 数字与静态 要点
- Head First Java(4)—— 序列化和文件的输入/输出
- HeadFirstJava学习——数字和日期格式化
- 《Head First C#》学习 ---第三章总结
- HeadFirstJava——1_基本概念
- HeadFirstJava——13_网络与线程