10-3 继承入门-重写
注解@Override
10-4 继承-子类构造
super超类-->指向父类
子类创建会默认调用父类空参构造
任何一个类都会继承一个顶级父类Object
10-5 继承-父子类构造器问题
若父类的constructor被重载,则子类要在构建一个constructor
10-6 类的加载顺序
1)父类静态字段 2)父类静态代码块 3)子类静态字段 4)子类静态代码块 5)父类成员变量 6)父类非静态代码块 7)子类成员变量 8)子类非静态代码块 9)子类构造器
静态代码块:类加载时会调用。第一次主动使用这个类就会加载代码到内存
static{}
非静态代码块
{。。。}
10-7 引用类型比较内容
String a = "a";
String b = "a";
(a==b)是true因为a和b同时指向内存中的“a”
如果String c = new String("a");
(a==c)是false因为c中的“a“存在了内存的另一片区域
引用数据类型不能用==来比较
10-8 equals方法
public boolean equals(Object obg){
Father father;
if(obj instance of Father) {
father = (Father)obj;
if(this.getHobby().equals(father.getHobby())){
return true;
}
}
}
10-9 instanceof和对象转型
if(father instanceof Father)
father是Father类的实例(instanceof问father是不是Father类型)
son instance of Father = true
所有的子类均属于父类(因为子类由父类产生)
父类不属于子类
10-10 Object的toString和HashCode
hashCode()把对象变成数字
如果想打印一个类的内容,要重写toString()
11-1 初入多态
1)有继承
2)有重写
3)有父类引用指向子类对象
Father f = new Son();
f.smoke(); //调用son的soke
多态是同一个行为具有多个不同表情形式或形态能力
ex 在现实中摁下F1
-在Word程序下弹出Word帮助
-在Windows程序下就弹出Windows帮助
11-2 接口和抽象类
抽象类:类中包含没有方法体的方法
public abstract void eat();
如果一个类所有的方法都是抽象的,则这个类为interface(接口)
public interface Animal(){}
public class Cat implements Animal(){}
11-3 数据结构链表
数组:通过下标快速进行操作
链表:更快速插入,删减