封装:使对象的属性尽可能私有,对象的方法尽可能的公开。用private表示此成员属性为该类的私有属性。0 F# O {1 Z: n. m9 S! j& ]) ?" X, |% @
Public表示该属性(方法)公开;
3 C' R7 N+ y- _+ D, _6 d x: c: J6 fPrivate表示该属性(方法)为只有本类内部可以访问(类内部可见)。
# `- i; V2 \4 _- v(想用private还要用set和get方法供其他方法调用,这样可以保证对属性的访问方式统一,并且便于维护访问权限以及属性数据合法性)7 z, o# W3 l9 b, R& F3 n
如果没有特殊情况,属性一定私有,方法该公开的公开。2 A& a' N. H( u$ }2 o7 O) H
如果不指明谁调用方法,则默认为this。% _7 m( C7 o7 c( W
区分实例变量和局部变量时一定要写this。1 i5 c% |0 ]$ k* ?
继承:1 f* B( D* q( ^$ C a3 I* }8 @
父类(SuperClass)和 子类(SonClass)。- t$ e/ H0 \" G# n
父类的非私有化属性和方法可以默认继承到子类。5 R/ ^' w% U# d$ ]0 z' X
Class Son extends Father{
8 {5 t+ w ?' K# K" f6 E# [/ z}2 G$ N6 x9 r- _0 B$ C H
而如果父类中的私有方法被子类调用的话,则编译报错。+ y$ X4 f. F9 C4 l
父类的构造方法子类不可以继承,更不存在覆盖的问题。(非构造方法可以)% j; O; M& f# G1 U
如果子类访问父类的构造方法,则在编译的时候提示访问不到该方法。- Z* Y- w+ S2 h
JAVA中不允许多继承,一个类有且只有一个父类(单继承)。$ p" W# j6 `3 F$ x% i# ~: v
JAVA的数据结构为树型结构,而非网状。(JAVA通过接口和内部类实现多继承) |