2022/7/23 第六组 王梦龙 学习记录
作者:互联网
Java面向对象之继承和继承
思维导图
封装
什么是封装?
封装就好比电脑的机箱,我们不需要考虑机箱内部是怎么运行的,结构是怎样的,我们只要把接口插上能够使用它的功能即可。
封装的意义:
1、提高代码的安全性,保护数据
2、提高了程序的可维护性和可扩展性
如何实现封装
1、将成员变量用private私有化
2、提供get()、set()方法,set()用来设置属性的值,get()用来得到属性的值
1 private String idCard;//银行卡号 2 private String name;//持卡人姓名 3 private String password;//银行卡密码
1 public String getIdCard() { 2 return idCard; 3 } 4 5 public void setIdCard(String idCard) { 6 this.idCard = idCard; 7 } 8 9 public String getName() { 10 return name; 11 } 12 13 public void setName(String name) { 14 this.name = name; 15 } 16 17 public String getPasswrd() { 18 return password; 19 } 20 21 public void setPasswrd(String password) { 22 this.password = password; 23 } 24 25 public Double getBalance() { 26 return balance; 27 } 28 29 public void setBalance(Double balance) { 30 this.balance = balance; 31 }
private关键字
private修饰的属性和方法只能当前类访问,其他类不可访问,这也是能实现封装的重要原因
继承
什么是继承?
在生活中,儿女继承父亲的姓,而名可以随意起,遗传父母的长相,而又不完全一样。父亲的遗产,儿女可以选择继承也可以选择放弃...
在Java中,继承也是如此,Java把继承别的类的属性和方法的类称为子类(基类),把被继承的类称为父类(超类)
子类继承父类功能的同时又可以进行扩展、升级。
继承的作用
1、提高了代码的复用性
2、提高了代码的可维护性
3、子类对父类继承的方法进行扩展
如何实现继承?
extends关键字
在Java中使用extends关键字来表明类与类之间的继承关系
类名(子类)extends类名(父类)
一个类只能有一个父类(直接父类),但可以有多个子类
方法的重写
子类继承父类的方法并可能进行扩展称为方法的重写override
1 public Card out(Double money) { 2 balance -= money; 3 flag = true; 4 showOutMessage(money); 5 return this; 6 }
1 public DebitCard out(Double money){ 2 if (money<=outAmount){ 3 super.out(money); 4 }else { 5 setFlag(false); 6 } 7 setOutAmount(money); 8 return this; 9 }
方法的重写要求
1、访问权限:重写后的方法权限必须低于或等于被重写的方法(开发中一般是等于)
2、返回值类型:基本数据类型必须一致,引用数据类型子类的必须低于或等于父类
3、方法名:必须相同
4、参数列表:必须相同
5、抛出异常:重写的方法抛出的异常不能抛出比被重写方法更大的异常
super关键字
使用super关键字可调用父类的方法和属性(非私有)
super.方法名()调用父类的方法
super.属性名调用父类的属性
super(参数列表)
super(参数列表)可在子类构造方法中调用父类的构造方法
super(参数列表)只能写在子类的构造方法中且必须在构造方法内的第一行
当使用super()调用父类的构造方法时,先执行父类的构造方法,在执行子类的构造方法
Objectlei类
Object类是Java所有类的父类(直接或间接父类),根类
Object类中的常用方法
tostring()方法
返回值为String类型,可根据子类不同的重写而实现不同的输出结果
equals()方法
返回值为boolean类型,可根据子类不同的重写而实现不同的比较方式
例如:字符串中的equals方法比较两个字符串值是否相等
而Integer类的equals方法在byte范围内比较的是值是否相等,而超出这个范围则比较的是地址
Object类中有11个方法
1.hashCode();它的返回值实际上就是对象运行时的内存地址。
hash算法:一般翻译“散列”,把任意长度的输入,通过一个散列算法变换成固定长度的输出,输出结果就是散列值。
密码加密MD5加密
SHA家族
2.equals(),和==没区别,比地址。为了让子类重写。
3.toString(),转换成字符串。当我们直接使用对象时,会默认调用toString()方法。
为了让子类重写
4.finalize(),垃圾回收的方法
5.clone(),克隆,必须实现Cloneable接口
标签:重写,String,23,子类,王梦龙,2022,父类,方法,public 来源: https://www.cnblogs.com/wanysyswml/p/16513162.html