封装

private私有
set、get方法

Alt+Insert


快速输出

封装的意义

年龄=999,不合法

在set方法中加入if判断



方法的重载
println为例

可以输出各种参数
查看两个方法是否相同
-
看方法名
-
看参数列表
继承

实例
父类Person中的方法say被子类Student继承,在main方法中经由子类调用

子类也可以继承父类的属性

前提是属性与方法都是public,除了public,还有private,default,protected,一般public用于继承
私有的东西无法继承

无法直接操作private属性,但可以通过父类提前留的get、set方法操作

快捷键:
在类中空白处按ctrl+H,打开继承树

现在在Application中重新new,把Person类清空

person.中有很多方法

没有定义但却存在,类似于无参构造

例如查看String类

查看Object类

确实有getClass方法

显式定义与不写没有任何区别


一个儿子只能有一个爸爸,但是一个爸爸可以有多个儿子
Super
-
操作1

-
操作2

-
操作3
把Person类中print方法的public改成private,报错,私有的东西无法被继承

-
操作4

super调用父类的构造器必须放在子类构造器代码第一行,否则会报错

-
操作5

但把它拿前面来之后

所以,要么调用父类,要么调用子类,只能写在第一行
-
操作6
回看Day11.构造器
假设父类没有无参

如果一定要调用有参,只要在子类super加个参数就行了

super注意点

方法的重写
首先创建A类继承B类,里面都有test()方法,new一个A类对象a


然后

发现new的都是A,结果却不同

将A类与B类的test方法去掉静态修饰符static
这个o代表重载

Alt+Insert重写方法


默认调用父类的方法,可以重写自己的

刚才调用A走A,调用B走B方法
现在两个都走A方法


子类重写了父类的方法

重写的关键词只能是public
重写总结


来源:b站狂神
浙公网安备 33010602011771号