封装
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站狂神