[{"data":1,"prerenderedAt":477},["ShallowReactive",2],{"\u002Fposts\u002F132cbd8":3,"surround-\u002Fposts\u002F132cbd8":471},{"id":4,"title":5,"body":6,"categories":449,"date":451,"description":452,"donation":453,"draft":454,"extension":455,"image":456,"meta":457,"navigation":453,"path":459,"permalink":459,"published":456,"readingTime":460,"recommend":456,"references":456,"seo":465,"sitemap":466,"stem":467,"tags":468,"type":469,"updated":451,"__hash__":470},"content\u002Fposts\u002F2026\u002Fjava-oop.md","Java 面向对象笔记：接口、抽象类、多态与重写",{"type":7,"value":8,"toc":435},"minimark",[9,14,99,103,113,116,120,123,133,136,148,150,154,199,202,208,210,214,217,220,226,229,234,240,246,249,252,255,257,261,267,270,278,280,284,340,342,346,349,355,358,366,369,371,375,378,381,384,386,389,392,400,402,410,413,421,424],[10,11,13],"h2",{"id":12},"一接口-vs-抽象类高频考点","一、接口 vs 抽象类（高频考点）",[15,16,17,33],"table",{},[18,19,20],"thead",{},[21,22,23,27,30],"tr",{},[24,25,26],"th",{},"对比点",[24,28,29],{},"接口（interface）",[24,31,32],{},"抽象类（abstract class）",[34,35,36,52,66,77,88],"tbody",{},[21,37,38,42,49],{},[39,40,41],"td",{},"方法",[39,43,44,45],{},"默认 ",[46,47,48],"code",{"code":48},"public abstract",[39,50,51],{},"可以有普通方法",[21,53,54,57,63],{},[39,55,56],{},"变量",[39,58,59,62],{},[46,60,61],{"code":61},"public static final","（常量）",[39,64,65],{},"普通成员变量",[21,67,68,71,74],{},[39,69,70],{},"构造方法",[39,72,73],{},"没有",[39,75,76],{},"有",[21,78,79,82,85],{},[39,80,81],{},"多继承",[39,83,84],{},"可以实现多个接口",[39,86,87],{},"只能继承一个类",[21,89,90,93,96],{},[39,91,92],{},"关键字",[39,94,95],{},"implements",[39,97,98],{},"extends",[100,101,102],"p",{},"一句话记忆：",[104,105,106,110],"ul",{},[107,108,109],"li",{},"接口：规范（全是规则）",[107,111,112],{},"抽象类：半成品类（可以有实现）",[114,115],"hr",{},[10,117,119],{"id":118},"二接口实现规则必考","二、接口实现规则（必考）",[100,121,122],{},"实现接口：",[124,125,131],"pre",{"className":126,"code":128,"language":129,"meta":130},[127],"language-java","class A implements B {\n    public 返回类型 方法名() {}\n}\n","java","",[46,132,128],{"__ignoreMap":130},[100,134,135],{},"必须满足：",[137,138,139,142,145],"ol",{},[107,140,141],{},"方法必须是 public",[107,143,144],{},"返回类型必须一致",[107,146,147],{},"必须实现全部方法（除非类是 abstract）",[114,149],{},[10,151,153],{"id":152},"三方法重写override规则高频","三、方法重写（Override）规则（高频）",[15,155,156,166],{},[18,157,158],{},[21,159,160,163],{},[24,161,162],{},"项目",[24,164,165],{},"要求",[34,167,168,176,183,191],{},[21,169,170,173],{},[39,171,172],{},"方法名",[39,174,175],{},"必须相同",[21,177,178,181],{},[39,179,180],{},"参数",[39,182,175],{},[21,184,185,188],{},[39,186,187],{},"返回值",[39,189,190],{},"相同或子类",[21,192,193,196],{},[39,194,195],{},"权限",[39,197,198],{},"不能变小（可变大）",[100,200,201],{},"典型错误：",[124,203,206],{"className":204,"code":205,"language":129,"meta":130},[127],"\u002F\u002F 错（权限变小）\nint f() {}\n\n\u002F\u002F 对\npublic int f() {}\n",[46,207,205],{"__ignoreMap":130},[114,209],{},[10,211,213],{"id":212},"四多态核心","四、多态（核心）",[100,215,216],{},"定义：",[100,218,219],{},"父类引用指向子类对象",[124,221,224],{"className":222,"code":223,"language":129,"meta":130},[127],"Father f = new Son();\n",[46,225,223],{"__ignoreMap":130},[100,227,228],{},"核心规则：",[137,230,231],{},[107,232,233],{},"能调用什么方法 → 看左边（父类）",[124,235,238],{"className":236,"code":237,"language":129,"meta":130},[127],"f.method(); \u002F\u002F 必须是 Father 中定义的\n",[46,239,237],{"__ignoreMap":130},[137,241,243],{"start":242},2,[107,244,245],{},"实际执行谁 → 看右边（子类）",[100,247,248],{},"如果子类重写了方法，则执行子类版本",[100,250,251],{},"总结：",[100,253,254],{},"编译看左边，运行看右边",[114,256],{},[258,259,260],"h3",{"id":260},"接口多态",[124,262,265],{"className":263,"code":264,"language":129,"meta":130},[127],"Interface i = new Impl();\n",[46,266,264],{"__ignoreMap":130},[100,268,269],{},"规则相同：",[104,271,272,275],{},[107,273,274],{},"只能调用接口中定义的方法",[107,276,277],{},"执行实现类的方法",[114,279],{},[10,281,283],{"id":282},"五哪些属于多态选择题","五、哪些属于多态（选择题）",[15,285,286,295],{},[18,287,288],{},[21,289,290,292],{},[24,291,162],{},[24,293,294],{},"是否多态",[34,296,297,305,312,318,325,333],{},[21,298,299,302],{},[39,300,301],{},"方法重载（overload）",[39,303,304],{},"是",[21,306,307,310],{},[39,308,309],{},"方法重写（override）",[39,311,304],{},[21,313,314,316],{},[39,315,219],{},[39,317,304],{},[21,319,320,323],{},[39,321,322],{},"接口引用指向实现类对象",[39,324,304],{},[21,326,327,330],{},[39,328,329],{},"类中数据操作",[39,331,332],{},"否",[21,334,335,338],{},[39,336,337],{},"继承本身",[39,339,332],{},[114,341],{},[10,343,345],{"id":344},"六接口中的常见错误","六、接口中的常见错误",[100,347,348],{},"错误写法：",[124,350,353],{"className":351,"code":352,"language":129,"meta":130},[127],"public abstract static void cry(); \u002F\u002F 错\n",[46,354,352],{"__ignoreMap":130},[100,356,357],{},"原因：",[104,359,360,363],{},[107,361,362],{},"abstract：没有方法体",[107,364,365],{},"static：必须有方法体",[100,367,368],{},"两者冲突，不能同时使用",[114,370],{},[10,372,374],{"id":373},"七最容易出错的点","七、最容易出错的点",[100,376,377],{},"错误1：抽象类的方法必须是抽象方法\n→ 错，可以有普通方法",[100,379,380],{},"错误2：父类引用可以调用子类所有方法\n→ 错，只能调用父类中声明的方法",[100,382,383],{},"错误3：接口方法可以随意定义\n→ 错，必须 public 且返回值一致",[114,385],{},[10,387,388],{"id":388},"最终记忆要点",[100,390,391],{},"接口：",[104,393,394,397],{},[107,395,396],{},"方法默认 public abstract",[107,398,399],{},"变量是常量（public static final）",[100,401,122],{},[104,403,404,407],{},[107,405,406],{},"方法必须 public",[107,408,409],{},"必须全部实现",[100,411,412],{},"多态：",[104,414,415,418],{},[107,416,417],{},"看左边决定能不能调用",[107,419,420],{},"看右边决定执行结果",[100,422,423],{},"重写：",[104,425,426,429,432],{},[107,427,428],{},"方法名相同",[107,430,431],{},"参数相同",[107,433,434],{},"权限不能降低",{"title":130,"searchDepth":436,"depth":436,"links":437},4,[438,439,440,441,445,446,447,448],{"id":12,"depth":242,"text":13},{"id":118,"depth":242,"text":119},{"id":152,"depth":242,"text":153},{"id":212,"depth":242,"text":213,"children":442},[443],{"id":260,"depth":444,"text":260},3,{"id":282,"depth":242,"text":283},{"id":344,"depth":242,"text":345},{"id":373,"depth":242,"text":374},{"id":388,"depth":242,"text":388},[450],"笔记","2026-04-24 00:44:30","整理了 Java 面向对象的一些考点，包括接口与抽象类的区别、接口实现规则、方法重写、多态机制等",true,false,"md",null,{"slots":458},{},"\u002Fposts\u002F132cbd8",{"text":461,"minutes":462,"time":463,"words":464},"4 min read",3.04,182400,608,{"title":5,"description":452},{"loc":459},"posts\u002F2026\u002Fjava-oop",[129],"tech","8JRLrWXZgqV8SkW3W--ME5wmml0m0yBK4yhLXf0bmeI",[472,456],{"title":473,"path":474,"stem":475,"date":476,"type":469,"children":-1},"TEC-2008教学计算机完整知识汇总","\u002Fposts\u002F7e2ce93","posts\u002F2026\u002Ftec_2008","2026-04-20 00:02:29",1776963868280]