首页 > 编程语言 > 详细

01 | Java面向对象

时间:2020-03-05 11:09:35      阅读:66      评论:0      收藏:0      [点我收藏+]

Java面向对象

面向对象的三大特性:

  • 继承
  • 封装
  • 多态

继承

目的:实现代码的复用

具体介绍:

  • 若两个子类具有相同的属性和方法时,可以将相同的一部分抽取出来放置公共的父类
  • 子类可以继承父类,继承后的子类将拥有父类的属性和方法(除了私有方法和构造方法)
  • 重写:子类可以复写父类的方法,命名与父亲类名相同的成员变量
  • 仅子类和本身访问的属性和方法可用(protect)修饰

类成员访问修饰符的功能范围

类型 private 无修饰(包限制) protect(包和子类限制) public
同一类 ? ? ? ?
同一包中的子类 ? ? ? ?
同一包中非子类 ? ? ? ?
不同包中子类 ? ? ? ?
不同包中的非子类 ? ? ? ?

封装

定义:隐藏对象属性和实现细节,仅对外公开接口,控制读和修改的访问级别

目的:增强安全性,简化编程

基本实现:属性私有化,添加get,set方法,控制接口访问业务

多态

  • 同一个行为具有多种不同表现形式或形态的能力

  • 同一接口,使用不同的实例,执行不同的操作

多态的实现方式

  • 重写
  • 接口
  • 抽象类和抽象方法

Java的常见问题

重写与重载

重写Override

  • 子类对父类允许访问的方法重新编写,返回值和形参都不改变(外壳不变,核心重写
  • 重写不能抛出新的异常,或者更加宽泛的异常(儿子还是儿子,不能比老子强)
  • final、static不能重写,构造方法不能被重写

重载Overload

  • 一个类里,方法名称相同,参数不同,返回类型可以相同也可以不同
  • 构造器的重载

重写与重载的区别

接口与抽象类的比较

语法层面的区别

接口 抽象类
只能存在抽象方法 提供成员方法的实现细节
只能存在抽象的成员变量 成员变量可存在多种类型
不能含静态代码块和静态方法 可以有静态代码块和静态方法
一个类可以实现多个接口 一个类只能继承一个抽象类

设计层面的区别

接口 抽象类
行为抽象 事物抽象
针对事物的局部行为抽象 针对整体事物:属性,方法抽象
接口是一种行为规范,辐射式设计 抽象来可做很多子类的父类,模版式设计
一旦进行变更,实现类必须变更 一旦进行变更,实现类可不进行变更

01 | Java面向对象

原文:https://www.cnblogs.com/xm08030623/p/12418298.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!