封装、继承、多态

1.     封装

1)       封装概念:将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问,封装是为了保护数据。

2)       封装的好处:

a)       只能通过规定的方法访问数据

b)       隐藏类的实现细节

c)       方便加入控制语句

d)       方便修改实现,提高代码的可维护性

e)       可进行数据检查,从而有利于保证对象的完整性

2.     继承

1)       继承特点:Java中的继承是单继承机制,通过extends关键字实现继承,实现继承的类被称为子类,被继承的类被称为父类也称其为基类、超类。子类和父类是一种特殊与一般的关系。子类是一种特殊的父类,或者说父类包含的范围要比子类包含的范围大。

2)       继承优点:可以减少重复代码的编写,提高工作效率。另外,在程序中通过使用继承,可以延续现实生活中两类对象之间的这种特殊的“继承”关系

3)       继承带来的问题:增加了两个类之间的耦合,破坏了父类的封装

4)       父类只能看到自己传给子类的属性和方法,看不到子类扩展的属性和方法。

5)       创建对象的过程(子类)

a)       分配空间(父类对象空间、子类对象空间)

b)       递归构造父类对象

c)       初始化属性

d)       调用构造方法

6)       子类可以在构造方法指定调用父类无参有参的构造方法,默认调用无参的构造方法

7)       Super( )调用父类构造方法的语句,必须放在子类构造方法第一句

3.     方法重写

1)       在一个子类中,重写父类的方法,这种形式称为方法覆盖。主要要求如下:

a)       子类的方法和父类的方法名称一致(包括:参数类型、参数数量,参数次序,方法返回值均一致),但方法体不同。

b)       子类调用覆盖的方法时,优先调用子类的同名方法。

c)       使用@Override注解,可以更加严格的约束子类的方法覆盖。

2)       在一个子类里,对父类的方法进行重写,也就是对方法赋予了新功能。这种情况称为方法的覆盖,也称为重写(Override)。

3)       方法的覆盖的要求:

a)       子类中覆盖的方法必须和父类对应方法,名称一致,参数列表一致,返回值一致。

b)       重写的方法不能缩小被重写方法的访问权限

c)       就近原则:子类的对象访问覆盖后的方法,不再访问父类的对应方法

Java中访问修饰符

修饰符

访问范围

是否能被继承

private

本类内部

不能被子类继承

default

本类内部+同包的其他类

不能被继承

protected

本类内部+同包的其他类+非同包子类

能被继承

public

公开、能被所有类访问

能被继承

       注:private(权限)实际上能继承,但看不到相当于没有被继承

4.     多态

Java引用变量有两个类型,一个是编译时的类型,一个是运行时的类型,编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定,如果编译时类型和运行时类型不一致,就会出现所谓的多态。

1)       多态三个必要条件:

a)       要有继承(实现implements)

b)       要有重写(overwrite&override)

c)       父类引用指向子类对象

2)       多态:重载、重写、抽象类、接口都是多态的表现。

3)       多态:不同的对象对同一个命令作为自己不同行为

:instanceof运算符判断某个复合变量(对象)是否属于某种类型,如果是,表达式返回true,否则为false,在进行强制类型转换之前,使用instanceof运算符进行一下判断,可以提高代码的安全性。

注:如果一个类的成员变量是其他类的变量那么必须先实例化该成员变量

5.    静态代码块,非静态代码块,构造方法执行顺序

1)       父类--静态代码块

2)       子类--静态代码块

3)       父类--非静态代码块

4)       父类--构造函数

5)       子类--非静态代码块

6)       子类--构造函数




1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值