本篇文章将从以下几个方面继续了解JAVA
二、子类对于从父类继承的哪些属性与方法是可见的
三、什么是组合,组合有什么作用
四、什么是重载,重载有什么作用
五、什么是覆盖,覆盖有什么作用
问题一:
访问权限 类 包 子类 其他包
public ∨ ∨ ∨ ∨ (对任何人都是可用的)
protect ∨ ∨ ∨ × (继承的类可以访问以及和private一样的权限)
default ∨ ∨ × × (包访问权限,即在整个包内均可被访问)
private ∨ × × × (除类型创建者和类型的内部方法之外的任何人都不能访问的元素)
举例:
不同包中,public为访问修饰符。
package com.run;
public class FightPlane {
private String name;
private int Num;
private static FightPlane fp;
private FightPlane (String _name, int _Num) {
name=_name;
Num=_Num;
}
public static FightPlane getInstance(String _name, int _Num) {
if(fp==null)
{
fp=new FightPlane(_name, _Num);
}
return fp;
}
}
package com.resource;
import com.run.FightPlane;
public class RunPlane {
public static void main(String[] args) {
FightPlane fp;
fp=FightPlane.getInstance("苏-35", 6);
fp.fire();
}
}
此时,RunPlane类可以访问FightPlane 中的方法,但不能访问FightPlane中的属性。
如果将FightPlane中的方法的访问修饰符public改为protected或者private,则不能访问。
由于两个类不在一个包中,故不能访问。
问题二:
子类从父类继承的public和protected方法和属性是可见的,而private方法和属性不可见
class A{ private int num1; public int num2; protected int num3; public void f1(){ } private void f2(){ } protected void f3(){ } } class B extends A{ }
B类从A类继承的方法f1,f3和属性num2,num3是可见的。
问题三:
组合:某个类的对象是另一个类的成员
作用:组合会使对象之间的耦合性较为松散,因而,消息和内部私有方法之间就没有直接联系,这就为阻断变化在软件系统内的传播提供了可能。
问题四:
继承:通过extends关键字实现,子类继承了父类所有的方法和属性,但只有public和protected在子类中是可见的
作用:继承提供了软件复用功能,通过增强一致性来减少模块间的接口和界面,大大增加了程序的易维护性。
问题五:
覆盖:子类与父类参数相同,返回类型相同的同名方法重新进行定义
作用:增加额外功能。
本篇博客较为简略,如愿补充,敬请私戳。