-
Notifications
You must be signed in to change notification settings - Fork 0
/
面向对象 继承.html
20 lines (19 loc) · 7.61 KB
/
面向对象 继承.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<html>
<head>
<title>面向对象 继承</title>
<basefont face="微软雅黑" size="2" />
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="exporter-version" content="Evernote Windows/302292 (zh-CN); Windows/6.1.7600 (Win64);"/>
<style>
body, td {
font-family: 微软雅黑;
font-size: 10pt;
}
</style>
</head>
<body>
<a name="474"/>
<h1>面向对象 继承</h1>
<div>
<span><div style="text-align: center"><span style="color: rgb(255, 0, 0);"><span style="font-size: 32px;">继承</span></span></div><div><br/></div><div><br/></div><div><span style="color: rgb(255, 0, 0);"><span style="font-size: 21px;">使用方法</span></span></div><div>继承的格式:</div><div><br/></div><div> class 类名1 <span style="font-size: 19px;"><span style="color: rgb(255, 0, 0);">extends</span></span> 类名2{</div><div><br/></div><div> }</div><div><br/></div><div><br/></div><div><br/></div><div><br/></div><div><span style="color: rgb(255, 70, 53);"><span style="font-size: 19px;">继承要注意的事项:</span></span></div><div> 千万不要为了减少重复代码而去继承,只有真正存在着继承关系的时候才去继承。</div><div> 父类私有的成员不能被继承。</div><div> 父类的构造函数不能被继承。</div><div> 创建子类对象时默认会先调用父类无参的构造函数作为第一执行语句。</div><div> 继承者会拥有父类的非私有属性与方法(构造方法除外)</div><div> 每个类都只有一个直接父类</div><div><br/></div><div><span style="font-size: 19px;"><span style="color: rgb(255, 0, 0);">为什么使用继承</span></span></div><div>使功能加强</div><div><br/></div><hr/><div><br/></div><div><br/></div><div><br/></div><div style="text-align: center"> <span style="color: rgb(255, 0, 0);"><span style="font-size: 24px;"> 对象数组</span></span></div><div><span style="font-size: 24px;"><span style="color: rgb(255, 0, 0);">一个数组是对象类型的</span></span></div><div><span style="font-size: 24px;"><span style="color: rgb(255, 0, 0);">使用方法</span></span></div><div><span style="font-size: 19px;"><span style="color: rgb(255, 0, 0);"> </span> object []名字 (和数组一样不过数据类型为对象)</span></div><div><span style="color: rgb(255, 0, 0);"><span style="font-size: 21px;">注意实行</span></span></div><div>对象数组使用前必须注意初始化</div><div><br/></div><div><br/></div><div><br/></div><div style="text-align: center"><span style="font-size: 32px;"><span style="color: rgb(255, 0, 0);">super关键字:</span></span></div><div><br/></div><div><span style="color: rgb(255, 0, 0);">super关键字</span>代表了父类空间的引用。</div><div><br/></div><div><span style="font-size: 21px;"><span style="color: rgb(255, 0, 0);">super关键字的 作用:</span></span></div><div> 1. 子父类存在着同名的成员时,在子类中默认是访问子类的成员,可以通过super关键字指定访问父类的成员。</div><div> 2. 创建子类对象时,默认会先调用父类无参的构造方法,可以通过super关键字指定调用父类的构造方法。</div><div><br/></div><div><span style="font-size: 21px;"><span style="color: rgb(255, 0, 0);">super关键字调用父类构造方法要注意的事项:</span></span></div><div> 1. 如果在子类的构造方法上没有指定调用父类的构造方法,那么java编译器会在子类的构造方法上面加上super()语句。</div><div> 2. super关键字调用父类的构造函数时,该语句必须要是子类构造函数中的第一个语句。</div><div> 3. super与this关键字不能同时出现在同一个构造函数中调用其他的构造函数。因为两个语句都需要第一个语句。</div><div><br/></div><div><br/></div><div><span style="color: rgb(255, 0, 0);"><span style="font-size: 21px;">super关键字与this关键字的区别:</span></span></div><div> 1. 代表的事物不一致。</div><div> 1. super关键字代表的是父类空间的引用。 </div><div> 2. this关键字代表的是所属函数的调用者对象。</div><div> 2. 使用前提不一致。</div><div> 1. super关键字必须要有继承关系才能使用。</div><div> 2. this关键字不需要存在继承关系也可使用。</div><div> 3. 调用构造函数的区别:</div><div> 1. super关键字是调用父类的构造函数。</div><div> 2. this关键字是调用本类的构造函数。</div><div><br/></div><div><br/></div><div><br/></div><div><br/></div><hr/><div><br/></div><div style="text-align: center"> <span style="color: rgb(255, 0, 0);"><span style="font-size: 32px;"> 方法的重写</span></span></div><div><br/></div><div><br/></div><div><br/></div><div><br/></div><div><br/></div><div><span style="font-size: 24px;"><span style="color: rgb(255, 0, 0);"><br/></span></span></div><div><span style="font-size: 24px;"><span style="color: rgb(255, 0, 0);"><br/></span></span></div><div><span style="color: rgb(255, 70, 53);"><span style="font-size: 21px;">能解决问题</span></span>:</div><div>父类的功能无法满足子类的需求。</div><div><br/></div><div><span style="color: rgb(255, 0, 0);"><span style="font-size: 21px;">方法重写的前提</span></span>:</div><div>必须要存在继承的关系。</div><div><br/></div><div><br/></div><div><span style="color: rgb(255, 0, 0);"><span style="font-size: 21px;">什么是方法重写</span></span></div><div> 子父类出了同名的函数,这个我们就称作为方法的重写。</div><div><br/></div><div>什么是时候要使用方法的重写:父类的功能无法满足子类的需求时。</div><div><br/></div><div><span style="font-size: 21px;"><span style="color: rgb(255, 0, 0);">方法重写要注意的事项:</span></span></div><div> 1.方法重写时, 方法名与形参列表必须一致。</div><div> 2.方法重写时,子类的权限修饰符必须要大于或者等于父类的权限修饰符。</div><div> 3.方法重写时,子类的返回值类型必须要小于或者 等于父类的返回值类型。</div><div> 4.方法重写时, 子类抛出的异常类型要小于或者等于父类抛出的异常类型。</div><div> Exception(最坏)</div><div> RuntimeException(小坏)</div><div><br/></div><hr/><div style="text-align: center"><span style="font-size: 32px;"><span style="color: rgb(255, 0, 0);">方法的重载</span></span></div><div><br/></div><div><span style="color: rgb(255, 0, 0);"><span style="font-size: 21px;">什么是方法重载</span></span></div><div>在一个类中 存在两个或者两个 以上的同名函数,称作为方法重载。</div><div><br/></div><div><span style="font-size: 21px;"><span style="color: rgb(255, 0, 0);">方法重载的要求</span></span></div><div> 1. 函数名要一致。</div><div> 2. 形参列表不一致(形参的个数或形参 的类型不一致)</div><div> 3. 与返回值类型无关。</div><div><span style="font-size: 21px;"><span style="color: rgb(255, 0, 0);">方法重载目的</span></span></div><div>方便开发者使用同一个方法调用不同参数来实现不同功能</div><div><span style="font-size: 21px;"><span style="color: rgb(255, 0, 0);">注意事项</span></span></div><div>参数值默认匹配比自己类型大的类型()</div><div><span style="font-size: 24px;"><span style="color: rgb(255, 0, 0);"><br/></span></span></div></span>
</div></body></html>