Java语言程序设计-基础篇(八)继承和多态

1.super,extends关键字。

super关键字用来引用父类的构造方法,同时可以调用父类的成员方法。extends用来说明类的继承关系,java中不允许一个类继承多个类,在未声明时所有的类都继承object类。

2.object类

object类是所有类的父类,有些常用方法。其中equals()用来看两个类地址是否一样,若要看内容是否一样需要覆盖该方法。toString()方法用来描述类,返回 “类名@地址”,可以覆盖该方法具体描述类。

3.覆盖与重载

当子类方法与父类方法名字相同,参数不同时称为重载,当名字相同,参数也相同,但是内容不同时称为方法覆盖。调用该方法时首先从子类开始寻找,没有在到父类里面寻找。如果该方法是构造方法,则先构造父类,在构造子类。若无参实例化一个子类,而该类没有无参的构造方法将会编译出错,所以一般要增加无参的构造方法。

4.多态,向上转型与向下转型,动态绑定,instanceof。

Object obj = new Student();其中第一个Obiect obj称为声明类型,第二个Student称为实际类型。所以obj实际上是Student类,当调用toString()方法时,是用的其实际类型的方法,也就是Student类的toString(),而这种调用方法就是动态绑定。这么做的目的是为了提升方法的扩展性,当方法参数调用不同对象时,有不同的内容(类似方法重载),这样也称为多态。也就是将父类型的对象实例作为参数传递方法,根据调用方法的不同子类型对象能有不同的语句。另外,该声明就是向上转型,因为子类型的实例总是父类型的实例。而父类型的实例不一定是子类型的实例,其中obj要想调用Student的方法和属性,需要向下强制转型,转型之前还要看一下到底是不是该子类型。所以有 if(obj instanceof Student){ (Student)obj ; obj.dosomething(); }。

5.再说可访问修饰符。

从公开程度依次下降: public  protected  null  private

从读取权限来说: 不同包 子类   同包 同类

什么等级的修饰符访问什么权限的类型,像下兼容不向上兼容。





你可能感兴趣的:(Java)