Java作业4

  1. Java的访问控制修饰符有哪些?各有什么访问权限?
    修饰符有:
    public(公有),protected(保护),private(私有),default(缺省/默认)
    public(接口访问权限):访问权限最大,被其修饰的类、属性和方法可以跨包,跨类访问。
    protected(包访问权限、继承访问权限):包中的类,或 是类及所有子类(子类、父类可不在同一包)
    private(无法直接访问):只能访问本类
    default(包访问权限):只允许访问同一个包中的类。
    访问权限首先看类前修饰符,当类前修饰符为public时,则类可以被所有类访问(可以import),当为默认时,则只能为包中的类所访问。在此前提下,再看属性和方法前的修饰符。
    当类前为public时,属性和方法前的修饰符为public则该属性可以被所有类访问;当属性和方法前为protected时,对于类定义而言,可以被同包中的类和所有子类访问(子类、父类可不在同一包),但对于对象而言,只能被同包中的类对象访问;当为默认时,只能被同包中的类访问(比protected的访问权限小);当为private时,只能被本类内部所访问。
    举例:
    1同一包中public类的protected属性访问:
    Java作业4

    2 不同包中public类的protected属性访问:不能通过fp来访问不在同一包的类的protected属性和方法
    Java作业4

    3 不同包继承关系public类的protected属性访问: 子类的类定义中可以访问父类的protected的属性和方法,无论是不是在同一包
    Java作业4

    4不同包演示public类的private属性:
    Java作业4
    2.子类对于从父类继承的哪些属性和方法是可见的?请分别写程序进行验证。
    子类继承了父类发所有属性和方法,但只有public、protected的属性和方法在子类中是可见的。
    例:
    Java作业4
    3.什么是组合?有什么作用?请举例说明。
    组合就是,A类的对象是B类的成员变量。相当于A类是B类的一个属性。
    作用:组合会使对象之间的耦合性较为松散,使消息和内部私有方法之间就没有直接的联系,这就为阻断变化在软件系统内的传播提供了可能。
    例:
    Java作业4
    Java作业4
    4.什么是重载?有什么作用?请举例说明。
    在类中定义了多个同名而不同内容的成员方法时,称这些方法是重载。
    作用:对于能进行消息处理的接口方法,重载既可以满足对其功能进行复用,又可以对其进行扩充。

Java作业4
Java作业4
Java作业4
5.什么是覆盖?有什么作用?请举例说明。
子类对父类的同名方法(方法名称相同,参数相同,返回类型相同)重新进行定义,即在子类中定义与父类中已定义的同名而内容不同的方法。
作用:方法覆盖与引用替换结合,可使抽象类的声明在保证消息发送统一性的前提下,具有消息结果执行上的相异性。
例:
Java作业4