Java基础Day08

面向对象的特征,封装、继承、多态(+抽象)
(1)封装:体现形式-方法、属性私有化,通过提高公共的访问方式仍然可以进行正常的赋值和取值,还可以提高代码的数据安全性

类中不可出现语句
Private私有化属性,只属于这个类,外部拿不到这个属性,但可以通过类中的方法间接拿

(2)继承
多个类含有相同的内容,把这些相同的内容放到一个新的类中,让原来的这些类通过extends和新类产生了关联关系-继承关系,新类是父类、超类、基类,原来的类是子类,派生类,子类可以拿到父类部分内容
Eg:通过extends关键字让医生类和医疗人员类产生了关联关系-继承-Class Doctor(子类,派生类) extends medical personnel(父类、超类、基类){}

继承的方式,
Java支持类与类之间是单继承(一个子类只能有一个父类,一个父类可以有多个子类)-优点:提高代码的复用性,避免了方法混用(两个父类有相同方法名,且返回值的类型不同或没返回值时,会很麻烦)
C语言支持多继承-优点:极大的提高代码的复用性,缺点:会产生方法混用

方法的重写(覆盖)-当父类和子类中,出现方法签名一致的方法,遵守重写的原则-两等两小一大:
(1) 方法签名一致;
如果父类方法的返回值类型是void/基本数据类型,子类的方法返回值类型要和父类一致
(2)如果父类方法的返回值类型是引用数据类型,那么子类的方法返回值的类型要么和父类的方法返回值类型一致,要么是其子类
(3)子类方法的访问权限修饰符要么和父类一致,要么大于父类的方法访问权限修饰符的范围
访问权限修饰符(位置关系:同包,父子,其他(不在一个包中)
本类 子类 同包类 其他类
Public 可以 可以 可以 可以
Protected 可以 可以 可以 不可以
默认(不写) 可以 (同包子类)可 可以 不可以
Private 可以 不可以 不可以 不可以
父类的私有化信息 (private)、父类的构造方法、构造代码块,子类继承不到

被protected修饰的内容,如果在其他类(位置关系)的位置且具有父子类关系,应保证子类对象要在子类的本类中使用,才能正常调用被protected修饰的内容

所有非静态(没static的)的方法都可以通过对象调用
This.-代表当前类的对象-eg:this()无参构造函数;
Super.-代表父类对象的引用,可以调用父类的属性方法
Super语句-在子类中的构造方法中调用父类的构造方法,父类对象优于子类对象先存在,于首行
父亲对象执行(父类构造代码块-父类构造方法)
子类对象执行(子类构造代码块-子类构造方法)

子类的所有构造方法中(有参、无参),都默认调用父类的无参构造,如果父类没有提供无参构造,子类所有的构造方法要保证调用到父类的其他形式构造(有参)

多态:在程序操作过程中代码的多种展现形式
代码经历的时期-编译时期、运行时期
在编译时期进行代码的绑定,编译时多态-重载
在运行时期进行代码的绑定,运行时多态(对象出时才能判定)-重写、向上造型(前提-继承)

向上造型:eg:Pet p父(相当于目录)=new Dog()子(正文);-声明类是父类,实际创建类是子类
向上造型创建的对象的调用方法(重写),方法的执行看子类,可以调用哪些方法看父类

父类拿不了子类

多态优点:

  1. 参数化统一(父类子类方法签名一致时-重写)
  2. 功能的统一调用
  3. 解耦(降低耦合度)

高内聚、低耦合-软件开发中遵守原则-高专一,少联系

思考题:图形类(Shape 长和宽(私有化) 有参构造赋值求周长和面积的方法)
矩形类(Rectangle)-子类正方形(Square)
圆形(Circle)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值