Tuesday, 24 May 2016

Java Access Modifier


                             
public: anywhere.
protected: accessible by classes within in the same package, and sub-class outside the package.
default: only access within the class and classes in the same package.
private:  only access within the class, not accessible even by the sub-classes.

The following example will show a compiling error, for A constructor using default modifier cannot be accessible outside the package. So it causes sub-class to init. error as calling super().

//File A.java
package a;

public class A {

    A() {
    }

    public void print() {
        System.out.println("A");
    }
}
//File B.java
package b;


import a.*;
public class B extends A {

    B() {
    }

    public void print() {
        System.out.println("B");
    }

    public static void main(String[] args) {
        new B();
    }
}


class normally being declared as public or default accessible.
private class is invalid modifier for the class, actually it doesn't make any sense; a private class should be declared as an inner class.

No comments:

Can Jackson Deserialize Java Time ZonedDateTime

Yes, but must include JSR310. Thus ZonedDateTime can be deserialized directly from JSON response to POJO field. <dependency> <g...