Java学习笔记4(面向对象-中)

目录

1.Java的访问控制修饰符有哪些?各有什么访问权限?
2.子类对于从父类继承的哪些属性与方法是可见的?
3.什么是组合?有什么作用?
4.什么是重载?有什么作用?
5.什么是覆盖?有什么作用?


1.Java的访问控制修饰符有哪些?各有什么访问权限?

在这里插入图片描述
在这里插入图片描述
1.访问权限首先取决于类前修饰符。若类A要访问类B的方法,前提条件是类A必须具有访问类B的权限。当类B前的修饰符是public时,它可以被所有类访问——即import;当为默认时,则只能被包中的类所访问。

2.在类能被访问的前提下(字母含义见上范围图)

  • public - 可被所有类访问
  • protected - 在类定义层面上,访问权限为B+C,而在对象层面上,则为B
  • 默认 - 访问权限只限于B
  • private - 只能被本类内部的方法所访问

2.子类对于从父类继承的哪些属性与方法是可见的?

  • 子类继承了父类的所有属性和方法,但只有public、protected的属性和方法在子类是可见的。

    子类在继承父类的时候,首先应该满足父类可被访问,例如当子类和父类不在同一个包当中时,父类修饰符必为public;在父类能被访问的前提下,凡是修饰符为public或是protected的父类属性成员或是方法能被子类所访问;private的属性成员或是方法则不能被访问。


3.什么是组合?有什么作用?

  • 对象A的引用作为对象B的数据对象,即为组合
  • 组合会使对象之间的耦合性较为松散,因为B对象通过引用向A对象发送消息,从而使B和A产生相互关联,这种联系是建立在A的授权基础上的,A对象私有的属性和私有方法B是无法访问的。因此,消息和内部私有方法之间就没有直接的联系,这就为阻断变化在软件系统内的传播提供了可能。

4.什么是重载?有什么作用?

  • 在类中定义了多个同名而不同内容参数的成员方法时,称这些方法是重载方法。

  • 方法重载的主要好处就是,不用为了对不同的参数类型或参数个数,而写多个函数。多个函数用同一个名字,但参数表,即参数的个数或(和)数据类型可以不同,调用的时候,虽然方法名字相同,但根据参数表可以自动调用对应的函数。这样我们在调用的时候,就不需要记那么多的方法名称,而是知道了方法的功能就可以直接的给他传递不同的参数,编译器会明确的知道我们调用了哪一个方法。重载比if…else要优雅,减少了if…else部分的代码。

    重载的最直接作用是方便了程序员可以根据不同的参数个数,顺序,类型,自动匹配方法,减少写过个函数名或方法名的重复步骤。


5.什么是覆盖?有什么作用?

  • 子类对父类参数相同、返回类型相同的同名方法重新进行定义,这种多态被称为覆盖

  • 当我们开发时,原有的父类—A类功能已经不够强了,我们需要对他进行功能修改,但又不能改动他的代码,因此我们可以用B类继承A类,然后在B类中重写A类的功能方法,达到不修改A类就能改动A类功能的目的。

    注意:为什么不能改动父类的代码?
    因为实际开发中,原有的代码可能包括很多类,类与类之间可能又有很多关联,所谓牵一发而动全身,所以尽量是不改动原有的代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值