# çè§£éæç»å®ä¸å¨æç»å® ä¸ä¸ªJava ç¨åºè¦ç»è¿ç¼åãç¼è¯ãè¿è¡ä¸ä¸ªæ¥éª¤ï¼å ¶ä¸ç¼å代ç ä¸å¨æä»¬è®¨è®ºçèå´ä¹å ï¼é£ä¹æä»¬çéç¹èªç¶å°±æ¾å¨äºç¼è¯ å è¿è¡è¿ä¸¤ä¸ªé¶æ®µï¼ç±äºç¼è¯åè¿è¡é¶æ®µè¿ç¨ç¸å½ç¹çï¼ä¸é¢å°±æççè§£æ¥è¿è¡è§£éï¼ ### Javaç¨åºä»æºæä»¶å建å°ç¨åºè¿è¡è¦ç»è¿ä¸¤å¤§æ¥éª¤ï¼ 1ãç¼è¯æ¶ææ¯ç±ç¼è¯å¨å°æºæä»¶ç¼è¯æåèç çè¿ç¨ 2ãåèç æä»¶ç±Javaèææºè§£éæ§è¡ ### ç»å® **ç»å®å°±æ¯ä¸ä¸ªæ¹æ³çè°ç¨ä¸è°ç¨è¿ä¸ªæ¹æ³çç±»è¿æ¥å¨ä¸èµ·çè¿ç¨è¢«ç§°ä¸ºç»å®ã** #### ç»å®åç±» ç»å®ä¸»è¦å为两ç§ï¼ éæç»å® å 卿ç»å® #### ç»å®çå ¶ä»å«æ³ éæç»å® == åæç»å® == ç¼è¯æ¶ç»å® 卿ç»å® == åæç»å® == è¿è¡æ¶ç»å® ä¸ºäºæ¹ä¾¿åºåï¼ ä¸é¢ç»ä¸ç§°å¼ä¸ºéæç»å®å卿ç»å® ### éæç»å® **å¨ç¨åºè¿è¡åï¼ä¹å°±æ¯ç¼è¯æ¶æJVMå°±è½å¤ç¡®å®æ¹æ³ç±è°è°ç¨ï¼è¿ç§æºå¶ç§°ä¸ºéæç»å®** #### è¯å«éæç»å®çä¸ä¸ªå ³é®å以ååèªççè§£ 妿ä¸ä¸ªæ¹æ³ç±privateãStaticãfinalä»»æä¸ä¸ªå ³é®åæä¿®é¥°ï¼é£ä¹è¿ä¸ªæ¹æ³æ¯åæç»å®ç æé æ¹æ³ä¹æ¯åæç»å® privateï¼privateå ³é®åæ¯ç§æçææï¼å¦æè¢«privateä¿®é¥°çæ¹æ³æ¯æ æ³ç±æ¬ç±»ä¹å¤çå ¶ä»ç±»æè°ç¨çï¼ä¹å°±æ¯æ¬ç±»æç¹æçæ¹æ³ï¼æä»¥ä¹å°±ç±ç¼è¯å¨è¯å«æ¤æ¹æ³æ¯å±äºåªä¸ªç±»ç ```java public class Person { private String talk; private String canTalk(){ return talk; } } class Animal{ public static void main(String[] args) { Person p = new Person(); // private ä¿®é¥°çæ¹æ³æ¯Personç±»ç¬æçï¼æä»¥Animalç±»æ æ³è®¿é®(å¨ç©æ¬æ¥å°±ä¸è½è¯´è¯) // p.canTalk(); } } ``` finalï¼finalä¿®é¥°çæ¹æ³ä¸è½è¢«éåï¼ä½æ¯å¯ä»¥ç±åç±»è¿è¡è°ç¨ï¼å¦æå°æ¹æ³å£°æä¸ºfinalå¯ä»¥ææçå ³é卿ç»å® ```java public class Fruit { private String fruitName; final String eatingFruit(String name){ System.out.println("eating " + name); return fruitName; } } class Apple extends Fruit{ // ä¸è½éåfinalæ¹æ³ï¼eatingFruitæ¹æ³åªå±äºFruitç±»ï¼Appleç±»æ æ³è°ç¨ // String eatingFruit(String name){ // super.eatingFruit(name); // } String eatingApple(String name){ return super.eatingFruit(name); } } ``` staticï¼ staticä¿®é¥°çæ¹æ³æ¯è¾ç¹æ®ï¼ä¸ç¨éè¿newåºæä¸ªç±»æ¥è°ç¨ï¼ç±ç±»å.åéåç´æ¥è°ç¨è¯¥æ¹æ³ï¼è¿ä¸ªå°±å¾å ³é®äºï¼new å¾å ³é®ï¼ä¹å¯ä»¥è®¤ä¸ºæ¯å¼å¯å¤æç导ç«ç´¢ï¼èç±ç±»å.åéåç´æ¥è°ç¨çè¯ï¼æ¤æ¶çç±»åæ¯ç¡®å®çï¼å¹¶ä¸ä¼äº§ç夿ï¼å¦ä¸ä»£ç ï¼ ```java public class SuperClass { public static void sayHello(){ System.out.println("ç± superClass è¯´ä½ å¥½"); } } public class SubClass extends SuperClass{ public static void sayHello(){ System.out.println("ç± SubClass è¯´ä½ å¥½"); } public static void main(String[] args) { SuperClass.sayHello(); SubClass.sayHello(); } } ``` ### SubClass ç»§æ¿SuperClass åï¼å¨ æ¯æ æ³éåsayHelloæ¹æ³çï¼ä¹å°±æ¯è¯´sayHello()æ¹æ³æ¯å¯¹åç±»éèçï¼ä½æ¯ä½ å¯ä»¥ç¼å"èªå·±ç"sayHello()æ¹æ³ï¼ä¹å°±æ¯åç±»SubClass çsayHello()æ¹æ³ï¼ç±æ¤å¯è§ï¼æ¹æ³ç±static å ³é®è¯æä¿®é¥°ï¼ä¹æ¯ç¼è¯æ¶ç»å® ### 卿ç»å® #### æ¦å¿µ **å¨è¿è¡æ¶æ ¹æ®å ·ä½å¯¹è±¡çç±»åè¿è¡ç»å®** **é¤äºç±privateãfinalãstatic æä¿®é¥°çæ¹æ³åæé æ¹æ³å¤ï¼JVMå¨è¿è¡æé´å³å®æ¹æ³ç±åªä¸ªå¯¹è±¡è°ç¨çè¿ç¨ç§°ä¸ºå¨æç»å®** 妿æç¼è¯ãè¿è¡çæä¸æ¡æ¶é´çº¿çè¯ï¼å¨è¿è¡åå¿ é¡»è¦è¿è¡ç¨åºçç¼è¯è¿ç¨ï¼é£ä¹å¨ç¼è¯æè¿è¡çç»å®æ¯åæç»å®ï¼å¨ç¨åºè¿è¡äºï¼åççç»å®å°±æ¯åæç»å® #### 代ç çè§£ ```java public class Father { void drinkMilk(){ System.out.println("ç¶äº²å欢åç奶"); } } public class Son extends Father{ @Override void drinkMilk() { System.out.println("å¿å忬¢åç奶"); } public static void main(String[] args) { Father son = new Son(); son.drinkMilk(); } } ``` Son类继æ¿Fatherç±»ï¼å¹¶éåäºç¶ç±»çdringMilk()æ¹æ³ï¼å¨è¾åºç»æå¾åºçæ¯å¿å忬¢åç奶ãé£ä¹ä¸é¢çç»å®æ¹å¼æ¯ä»ä¹å¢ï¼ ä¸é¢çç»å®æ¹å¼ç§°ä¹ä¸ºå¨æç»å®ï¼å 为å¨ä½ ç¼å Father son = new Son()çæ¶åï¼ç¼è¯å¨å¹¶ä¸ç¥ésonå¯¹è±¡çæ£å¼ç¨çæ¯è°ï¼å¨ç¨åºè¿è¡æ¶ææç¥éï¼è¿ä¸ªsonæ¯ä¸ä¸ªFatherç±»ç对象ï¼ä½æ¯å´æåäºSonçå¼ç¨ï¼è¿ç§æ¦å¿µç§°ä¹ä¸ºå¤æï¼é£ä¹æä»¬å°±è½å¤æ´çåºæ¥å¤æçä¸ä¸ªååï¼ **1. ç»§æ¿ ** **2.éå** **3.ç¶ç±»å¯¹è±¡æååç±»å¼ç¨** ä¹å°±æ¯è¯´ï¼å¨Father son = new Son() ï¼è§¦åäºå¨æç»å®æºå¶ã #### 卿ç»å®çè¿ç¨ 1. èææºæå对象çå®é ç±»åçæ¹æ³è¡¨ï¼ 2. èææºæç´¢æ¹æ³ç¾åï¼ 3. è°ç¨æ¹æ³ã ## 卿ç»å®åéæç»å®çç¹ç¹ #### éæç»å® éæç»å®å¨ç¼è¯æ¶æè§¦åï¼é£ä¹å®ç主è¦ç¹ç¹æ¯ 1ãç¼è¯æè§¦åï¼è½å¤ææ©ç¥é代ç é误 2ãæé«ç¨åºè¿è¡æç #### 卿ç»å® 1ã使ç¨å¨æç»å®çåææ¡ä»¶è½å¤æé«ä»£ç çå¯ç¨æ§ï¼ä½¿ä»£ç æ´å çµæ´»ã 2ã夿æ¯è®¾è®¡æ¨¡å¼çåºç¡ï¼è½å¤éä½è¦åæ§ã åèï¼ https://blog.csdn.net/zhangjk1993/article/details/24066085 