2019-07-17

方法的重写

(发生在父子之间)

1)方法的重载overload:方法名相同,参数列表不同

     方法的重写override:子类通过重写父类的方法,可以用自身的行为替换父类的行为

2)重写的三个条件

1.“==”: 方法名、形参列表相同。

 2.“≤”:返回值类型和声明异常类型,子类小于等于父类。

  3.“≥”: 访问权限,子类大于等于父类。

3)符号

@Override  :主要标识当前的方法是重写父类的方法,该方法必须满足重写的特征

4)重写格式:和父类方法名,形参列表相同

5)作用:方法的重写是实现多态的必要条件。

编写的代码及运行结果


Object类的基本特征

1)Object类是所有Java类的根基类,也就意味着所有的Java对象都拥有Object类的属性和方法。如果在类的声明中未使用extends关键字指明其父类,则默认继承Object类。

eg:public class User2 extends Object{}

2)java.lang.Object常用的方法:toString(),其返回值是 String 类型

如果不重写Object类中的toSting()方法,默认会返回“类名+@+16进制的hashcode”(即返回一个存放的地址名)

编写代码及运行结果

3)如果重写Object类中的toSting()方法会打印出具体的内容

重写Object中的toSting()方法:

public String toString(){

 return ....

 }

编写代码


==和equals方法

1)==在比较数值类型的值时,代表的是比较的两个数值是否相等

  ==在比较对象时,代表的是比较两个对象的内存地址是否相同

2)equals如果不重写的话,默认比较的是内存地址

   通过子类重写equals方法,比较的是内容是否相同

3)equals方法来源:Object类中的equals方法

Object类中的equals方法的源码如下:(默认比较的是内存地址)

public boolean equals(Object obj);{

return (this == obj);

 }

4)重写equals方法

右键 source选项,再点击  Generate hashCode() and equale()...


会出现如下界面,点击右下方的Generate


编写代码及运行结果



super关键字

super是直接父类对象的引用。可以通过super来访问父类中被子类覆盖的方法或属性。

使用super调用普通方法,语句没有位置限制,可以在子类中随便调用。

 若是构造方法的第一行代码没有显式的调用super(...)或者this(...);那么Java默认都会调用super(),含义是调用父类的无参数构造方法。这里的super()可以省略。

1)super可以直接访问父类的属性和方法

super.属性          super.方法名()

2)使用super关键字访问父类的构造方法,必须放在子类构造方法的第一行

编写代码及运行结果




3)继承树追溯

属性/方法查找顺序:(比如:查找变量h)

      1. 查找当前类中有没有属性h

      2. 依次上溯每个父类,查看每个父类中是否有h,直到Object

      3. 如果没找到,则出现编译错误。

      4. 上面步骤,只要找到h变量,则这个过程终止。

构造方法调用顺序:

      构造方法第一句总是:super(…)来调用父类对应的构造方法。所以,流程就是:先向上追溯到Object,然后再依次向下执行类的初始化块和构造方法,直到当前子类为止。

      注:静态初始化块调用顺序,与构造方法调用顺序一样,不再重复。

编写代码及运行结果


封装

1)定义:需要让用户知道的才暴露出来,不需要让用户知道的全部隐藏起来,这就是封装

2)作用:封装就是把对象的属性和操作结合为一个独立的整体,并尽可能隐藏对象的内部实现细节。

3)优点:

 1. 提高代码的安全性。

     2. 提高代码的复用性。

     3. “高内聚”:封装细节,便于修改内部代码,提高可维护性。

     4. “低耦合”:简化外部调用,便于调用者使用,便于扩展和协作

注意:我们程序设计要追求“高内聚,低耦合”。 高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合是仅暴露少量的方法给外部使用,尽量方便外部调用。

没有封装的代码会出现一些问题



4)封装的实现——使用访问控制符


  1. private 表示私有,只有自己类能访问

   2. default表示没有修饰符修饰,只有同一个包的类能访问

   3. protected表示可以被同一个包的类以及其他包中的子类访问

    4. public表示可以被该项目的所有包中的所有类访问

编写代码如下


5)使用细节

1.私有的属性(用private修饰的属性)

2.公有的getter方法和setter方法赋值(public修饰的方法)

getter方法取值,命名规则:get+属性名首字母大写+其余字母

注意:boolean类型getter方法:is+属性首字母大写+其余字母

setter方法赋值,命名规则:set+属性名首字母大写+其余字母



3.无参构造方法

JavaBean的封装实例



多态

1)定义:多态指的是同一个方法调用,由于对象不同可能会有不同的行为

生活中的多态:水(固态冰,液态水,水蒸气)

2)优点:提高程序的扩展性和可维护性

3)多态的要点

 1. 多态是方法的多态,不是属性的多态(多态与属性无关)。

2. 多态的存在要有3个必要条件:继承,方法重写,父类引用指向子类对象。

3. 父类引用指向子类对象后,用该父类引用调用子类重写的方法,此时多态就出现了。


对象的转型

1)向上转型:父类引用指向子类对象,属于自动转换类型

 将子类当作父类进行使用,只能访问子类和父类共有的方法和属性

2)向下转换:将父类类型转换为子类类型,属于强制转换类型

注意: 在向下转型过程中,必须将引用变量转成真实的子类类型(运行时类型)否则会出现类型转换异常ClassCastException。

为了避免出现这种异常,我们可以使用instanceof运算符进行判断


final关键字

 1. 修饰变量: 被他修饰的变量不可改变。一旦赋了初值,就不能被重新赋值。

 2. 修饰方法:该方法不可被子类重写。但是可以被重载!

  3. 修饰类: 修饰的类不能被继承。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,980评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,422评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,130评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,553评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,408评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,326评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,720评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,373评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,678评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,722评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,486评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,335评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,738评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,283评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,692评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,893评论 2 335

推荐阅读更多精彩内容