10. 继承和多态:
1) 关键字super:
子类调用父类的构造函数的语法:
super();和super(参数);
且必须出现在子类构造函数的第一行。
2) 函数覆盖:
子类定义的方法必须与父类方法具有相同的投标制和相同的返回值类型。
实例方法仅当能访问时才能够覆盖。 静态方法也可以继承,但是不能被覆盖,
如果父类中定义的静态方法在子类重新被定义,那么父类中的方法将会被隐藏。
3) 多态性和动态绑定:
为父类设计的任何代码都可以应用于子类,这个特性称为多态性。
假设o为C1、C2、C3……Cn的实例,且C1是C2的子类,C2 是C3的子类Cn-1是Cn的子类,
则在o调用方法p时Java虚拟机会在C1、C2、C3……Cn中查找p的实例,直到找到为止,
且一旦找到一个实现,停止查找并调用这个第一次找到的实例。
发生动态绑定的条件:
1>要有继承。
2>要有重写。
3>要有父类对象指向子类对象。
4>要有父类对象调用重写的方法。
4) 对象类型的转换:
子类对象可以隐式的转换为父类对象:
object o = new sonObject();
父类对象必须显示的转换为子类对象:
sonClass sonObject = (sonObject) object;
转化规则:
1>一个父类对象可以指向其任意的子类对象。
2>一个父类对象不可以访问其子类新增加的成员。
3>可以使用“对象变量名 instanceof 类名(或接口名)”来判断
该变量所指向的对象是否属于该类,即判断子类是否是相应父类的子类。
5) clone方法:
对象、数组都可以实现clone方法:
newObject = oldObject.clone();
newArray[] = oldArray.clone();
复制后newObject和newArray会有单独的内存和空间,并且内 容与oldObject和oldArray相同。
6) getClass方法:
对象调用getClass方法可以显示:
object.getClass();
7)Java中多态的实现:
· 方法的重载overloading:
方法重载主要用于在同一个类中有多个具有相同名称的方法,
包括构造方法的重载,方法具有不同的参数列表如:
public class
// 构造方法的重载
public
}
public JavaBeanTest(int
}
public
}
// 自定义方法的重载
public void
}
public String display(int i, int
return i + " "
}
}
· 方法的重写overrride:
方法的重写主要用于当子类和父类具有形同的名称、返回值类型和型参列表,即三者完全相同。
例如:
class
name = "FaLaLi";
color = "red";
public void
out.println("The Father name");
}
}
class Son extends
public void
out.println("The Son name");
}
}
注:方法重写不能使用比被重写方法更严格的访问权限。
在重新定义方法时可以重新定义返回值类型:
public class
protected String name;
public
this.name= name;
}
public
return new Bird(name);
}
}
class Chicken extends
protected String crest;
public
super(name);
this.crest
}
//重新定义返回值类型为Chicken
public
return new Chicken(name,crest);
}
}
注:重新定义的返回值类型必须是父类中同一方法返回值类型的子类型,并且无法重新定义static方法。
多态实现的可以按如下步骤:
1> 子类重写父类的方法。
2> 编写方法时,使用父类定义的方法。
3> 运行时,根据实际创建的对象类型动态决定是用那个方法。
JAVA 多态 子类创建成员属性继承父类初始化的属性
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
python多态继承
python继承
构造函数 多重继承 Python -
java子类初始化 子类初始化父类成员
引用:文中提到子类的初始化过程。 父类static修饰的模块 | 子类static修饰模块 | &
java子类初始化 初始化 子类 构造函数 -
Apollo配置热更新mysql地址
4.1 Apollo工作原理下图是Apollo架构模块的概览 各模块职责上图简要描述了Apollo的总体设计,我们可以从下往上看:Config Service提供配置的读取、推送等功能,服务对象是Apollo客户端Admin Service提供配置的修改、发布等功能,服务对象是Apollo Portal(管理界面)Eureka提供服务注册和发现,为了简单起见,目前Eureka在部署时和Config
Apollo配置热更新mysql地址 apollo修改配置刷新bean apollo集群部署 灰度 Server