ONE: super关键字
class father{
}
class child entends father{
}
public class Aya{
public static void main(String[] args){
child cc=new child();//■
}
}
如上:方块语句,当创建一个新对象的时候,
CC本身有一个 this成员变量指向自身
如果CC是某个类的子类,这是其还有一个变量
super指向father类(相当于创建一个临时father对象);
TWO: 继承中的构造方法
1:子类构造的过程中需调用父类的构造方法
2:子类可以再自己的构造方法中使用super(argument.list)
调用基类的构造方法(可重载)
※ 使用this(argument.list)可以调用本类的另外的构造方法
※如果调用super,必须卸载子类构造方法的第一行(前面);
※如果子类的构造方法中没有显示的调用基类的构造方法,则
系统默认的调用基类的无参数构造方法
THREE: Object 类(javA LANG包中);
※Object 类是所有Java类的根基类,所有的类都是根据它继承下来的
※如果在类的声明中未使用extends关键字指明其基类,则默认的基类为object
toString()(object类中):返回一个对象的HASH码。(默认调用)
example:Dog dog=new Dog()
System.out.println(d);
print: dog@xxxxx;
equals():java api 判断两个对象(地址)是否相等(成员变量)须重写。
※对于不同的类的对象调用该方法时,最后的结果可能不一样,取决于该方法是否被重写。
(object obj) 该函数的参数为object类的一个对象,
java找某个类是按照classpath的顺序找的
FOUR: 对象转型(casting)
※父类对象指向子类的引用,它看到的只有父类那一部分,
animal a=new animal(); a=new dog(); class dog extends animal
如上,a虽然指向dog,但它只看到了dog中的animal部分。而其余部分不可访问。
※若想访问其余部分则可以强制转化:dog d1=(dog) a,
※ 判断某对象是否属于某类: xx instanceof xxx,返回boolean类型
※父类的引用可以指向子类对象
FIVE: 动态绑定/多态
※当一个基类的引用类型指向子类,并且,子类重写了基类的方法。
当创建该子类的对象时,访问 对象.方法 这时访问的并非基类的方法,
而是子类的方法。(动态绑定)
※产生多态的三个条件
1:要有继承
2:要有重写
3:父类引用指向子类的对象
※:达到最好的可扩展性,写一个主类,其它的类都从这个主类继承
SIX: 抽象类
※用abstract修饰一个类的时候,这个类叫做抽象类,若修饰的为方法,则叫做抽象方法
※抽象方法可用于多态,把基类的方法写成public abstract void xxx();相当于虚函数、若一个类中有抽象方法,则该类也必须写成抽象类
※抽象类应该被继承。它无法new一个对象。
seven: 关键字final
※final的变量的值不能被改变,形参为final的话,一旦实参传进来,就无法改变
※其修饰的方法不能被重写,被修饰的类不能被继承
String math类是final的