1.访问类型(类和对象)


public:公有变量方法,任何地方都能访问。


private:私有变量方法,只能在本类中创建访问(想要访问则需提供公有方法来访问私有变量)。


protected:受保护的变量方法,只能在同包访问或其他包继承访问。


(default):友好的变量方法,只能同包访问。



嵌套类可以访问外部类的public,protected,private方法。而且静态嵌套类不能直接访问外部类定义的实例变量(无static修饰的称为实例变量,有static修饰的称为类变量)和实例方法,内部类可以。


注:静态嵌套类即用static修饰的嵌套类,内部类为无static修饰的嵌套类。


注:实例方法可以操作实例变量和类变量。而类方法不能操作实例变量(不能通过类名直接访问实例变量)。



2.继承与子类


继承:


1.无论子类位于哪个包,子类都会继承父类的public和protected的成员变量和成员方法。


2.子类和父类位于同一个包时,子类还会继承父类的友好成员变量和友好成员方法。


3.子类不能继承父类的构造方法。


注:在子类中,子类定义与父类同名的成员变量会隐藏同名父类的成员变量。但可以通过子类调用父类的公有方法输出隐藏变量,也可以使用super关键字访问(须出现在子类构造方法的第一行)。


注:子类覆盖父类方法时,不可降低覆盖方法的访问权限。


注:方法声明为final后,父类的方法不能被子类方法覆盖。类声明为final则不允许被继承。



instanceof运算符:双目运算符,左面操作元是对象,右面操作元是类。当左面操作元是右面操作元所创建对象时,运算结果为true。



上转型对象:


1.上转型对象不能操作子类新增的成员变量;不能调用子类新增的方法。


2.上转型对象可以访问子类继承或隐藏的成员方法,也可调用子类继承的方法或子类重写的实例方法。上转型对象操作子类继承的方法或子类重写的实例方法,其作用等同于子类对象去调用这些方法。




抽象类:(不能用new运算创建对象)


1.若一个非抽象类是某个而抽象类的子类,那么它必须重写父类的抽象方法,给出方法体。


2.若一个抽象类是另一个抽象类的子类,那么它可以重写父类的抽象方法,也可以继承这个抽象方法。




接口:


1.接口体有常量的声明(没有变量)和方法定义两部分。


2.接口体只有抽象方法,且所有常量访问权限一定都是public(允许省略public和final修饰符),所有抽象方法访问权限都是public(允许省略public,abstract修饰符)。


3.如果一个类实现了某个接口,那么这个类必须重写该接口的所有方法(重写时访问权限要明显的用public修饰)。


4.如果父类实现了某个接口,那么子类也自然实现了该接口,子类不必显示使用关键字implements声明实现该接口(子类需重写接口所有方法)。


5.接口可以被另一个接口继承,子接口将继承父接口的全部方法和变量。


注:如果一个类声明实现了一个接口,但并没有重写该接口所以方法,那么这个类必须是abstract类。



接口回调:把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中,那么该接口变量就可以调用被类实现的接口方法(类似于上转型对象调用子类的重写方法)。


注:接口的多态性,即不同类实现用意接口时可具有不同实现方法,此时接口回调接口方法会具有多种形态。


注:接口相比较抽象方法的好处是一个类可以实现多个接口,而一个子类只能继承一个父类。