⑴ java中面向对象的三大特征是什么
面向对象三大特性
继承:一般类只能单继承,内部类实现多继承,接口可以多继承
封装:访问权限控制public > protected > 包 > private 内部类也是一种封装
多态:编译时多态,体现在向上转型和向下转型,通过引用类型判断调用哪个方法(静态分派)。
运行时多态,体现在同名函数通过不同参数实现多种方法(动态分派)。
希望对您有所帮助!~
⑵ JAVA中什么是继承
继承在本职上是特殊一般的关系,即常说的is-a关系。子类继承父类,表明子类是一种特殊的父类,并且具有父类所不具有的 一些属性或方法。
1.Java继承的语法格式:
Java继承的关键字是:extends
public class 子类名 extends 父类名{...}
如: public class UNStudent extends Student {...} 注:1.子类又称超类,拓展类 ;父类又称基类。
2.Java中类的继承只能是单继承(单根继承),即一个类只能继承一个父类,但是一个类可以由多个类来继承它。
3.Java会给每一个没有设置父类的类,自动添加一个父类就是Object 。
(2)java面向对象继承扩展阅读:
一、子类继承父类的结果
1.子类继承父类后,继承到了父类所有的属性和方法。注:是所有。
2.子类可调用的方法也要看情况而定:
子类和父类在同一个包下时 “子类和子类的对象”可以调用父类的默认的,受保护的,公有的属性以及方法。
子类和父类在不同的包下时,在子类中可以调用受保护的,公有的属性以及方法,而子类的对象可以调用受保护的,公有的属性以及方法。
二、方法的重写
1.当子类和父类都有某种方法,而子类的方法更加要求细致,或者实现功能不同,就需要方法的重写。
2.重写条件
①必须要存在继承关系;只有继承之间的关系才能有方法的重写
②方法的返回值类型,方法名,参数个数,参数类型,参数顺序,必须要完全一致;
如:父类中方法 public void play (int n ; String s){方法体1...}
重写后的子类方法public void play(int n ; String s){方法体2...}
3.子类重写方法时的访问修饰符可以大于或者等于父类方法的访问修饰符。
4.重写后的方法会被优先调用。
三、自动转型
自动转型的实现要求有继承关系
格式如下:父类名 对象名 = new 子类构造方法;
如:Student stu = new UNStudent;
而强制转型格式如下:子类名 对象名 = (子类名)父类对象名
如:UNStudent un = (Student)stu;
自动转型可以拓宽方法的作用访问域
在使用自动转型后,子类自己定义的方法是不能在自动转型后执行;
原因是因为Java的编译机制,它会优先判断父类中是否存在该方法,如果存在则通过编译,如果不存在则报错。
第二种自动转型:转型后只需要不同类的不同对象调用想吐的方法,很方便!
/**访问修饰符 返回值数据类型 方法名(父类类型 参数名,...){
调用方法。
}
父类名 对象名 = new 子类名;
子类名 对象名 = new 子类名;
方法名(对象名);
*/
比如拿到驾驶证为A2的人,可以驾驶重型货车,当然也可以驾驶大型货车,中型货车,小型货车,小客车,小轿车,摩托车... 可以选择第二种自动转型的方法,便于调用同一个方法。
自动转型好处:1.减少冗余代码;2.在方法设置参数时,扩大访问范围。
四、多态
多态是由方法重载,继承,方法重写,自动转型等技术的组合。
五、为什么需要继承?
1.提高代码的重用性。
2.提高程序的扩展性。
JAVA继承总结
⑶ 闱㈠悜瀵硅薄镄勪笁澶х壒寰佸湪java涓镄勪綋鐜帮纻
涓銆佸皝瑁
棣栧厛锛屽睘镐ц兘澶熸弿杩颁簨鐗╃殑鐗瑰緛锛屾柟娉曡兘澶熸弿杩颁簨鐗╃殑锷ㄤ綔銆傚皝瑁呭氨鏄鎶婂悓涓绫讳簨鐗╃殑鍏辨э纸鍖呮嫭灞炴у拰鏂规硶锛夊綊鍒板悓涓绫讳腑锛屾柟渚夸娇鐢ㄣ
灏佽咃细灏佽呬篃绉颁俊鎭闅愯棌锛屾槸鎸囧埄鐢ㄦ娊璞℃暟鎹绫诲瀷鎶婃暟鎹鍜屽熀浜庢暟鎹镄勬搷浣滃皝瑁呰捣𨱒ワ纴浣垮叾鎴愪负涓涓涓嶅彲鍒嗗壊镄勬暣浣掳纴鏁版嵁闅愯棌鍦ㄦ娊璞℃暟鎹鍐呴儴锛屽敖鍙鑳界殑闅愯棌鏁版嵁缁呜妭锛屽彧淇濈暀涓浜涙帴鍙d娇鍏朵笌澶栫晫鍙戠敓镵旂郴銆备篃灏辨槸璇寸敤鎴锋棤闇鐭ラ亾鍐呴儴镄勬暟鎹鍜屾柟娉旷殑鍏蜂綋瀹炵幇缁呜妭锛屽彧闇镙规嵁鐣椤湪澶栭儴镄勬帴鍙h繘琛屾搷浣滃氨琛屻
涓轰简瀹炵幇镩濂界殑灏佽咃纴鎴戜滑阃氩父灏嗙被镄勬垚锻桦彉閲忓0鏄庝负private锛屽湪阃氲繃public鏂规硶𨱒ュ硅繖涓鍙橀噺𨱒ヨ块梾銆傚逛竴涓鍙橀噺镄勬搷浣滐纴涓鑸链夎诲彇鍜岃祴鍊2涓镎崭綔锛岋纴鎴戜滑鍒嗗埆瀹氢箟2涓鏂规硶𨱒ュ疄鐜拌繖2涓镎崭綔锛屼竴涓鏄痝etXX锛圶X琛ㄧず瑕佽块梾镄勬垚锻桦彉閲忕殑钖嶅瓧锛夌敤𨱒ヨ诲彇杩欎釜鎴愬憳鍙橀噺锛屽彟涓涓鏄痵etXX锛堬级鐢ㄦ潵瀵硅繖涓鍙橀噺璧嫔笺
浜屻佺户镓
1. Java缁ф圹
Java缁ф圹鏄闱㈠悜瀵硅薄镄勬渶鏄捐宪镄勪竴涓鐗瑰緛銆傜户镓挎槸浠庡凡链夌殑绫讳腑娲剧敓鍑烘柊镄勭被锛屾柊镄勭被鑳藉惛鏀跺凡链夌被镄勬暟鎹灞炴у拰琛屼负锛屽苟鑳芥墿灞曟柊镄勮兘锷涖侸AVA涓嶆敮鎸佸氱户镓匡纴鍗旷户镓夸娇JAVA镄勭户镓垮叧绯诲緢绠鍗曪纴涓涓绫诲彧鑳芥湁涓涓鐖剁被锛屾槗浜庣$悊绋嫔簭锛岀埗绫绘槸瀛愮被镄勪竴鑸鍖栵纴瀛愮被鏄鐖剁被镄勭壒鍖栵纸鍏蜂綋鍖)
缁ф圹镓琛ㄨ揪镄勫氨鏄涓绉嶅硅薄绫讳箣闂寸殑鐩镐氦鍏崇郴锛屽畠浣垮缑镆愮被瀵硅薄鍙浠ョ户镓垮彟澶栦竴绫诲硅薄镄勬暟鎹鎴愬憳鍜屾垚锻樻柟娉曘傝嫢绫籅缁ф圹绫籄锛屽垯灞炰簬B镄勫硅薄渚垮叿链夌被A镄勫叏閮ㄦ垨閮ㄥ垎镐ц川(鏁版嵁灞炴)鍜屽姛鑳(镎崭綔)锛屾垜浠绉拌缁ф圹镄勭被A涓哄熀绫汇佺埗绫绘垨瓒呯被锛岃岀О缁ф圹绫籅涓篈镄勬淳鐢熺被鎴栧瓙绫汇
缁ф圹阆垮厤浜嗗逛竴鑸绫诲拰鐗规畩绫讳箣闂村叡钖岀壒寰佽繘琛岀殑閲嶅嶆弿杩般傚悓镞讹纴阃氲繃缁ф圹鍙浠ユ竻鏅板湴琛ㄨ揪姣忎竴椤瑰叡钖岀壒寰佹墍阃傚簲镄勬傚康锣冨洿钬斺斿湪涓鑸绫讳腑瀹氢箟镄勫睘镐у拰镎崭綔阃傚簲浜庤繖涓绫绘湰韬浠ュ强瀹冧互涓嬬殑姣忎竴灞傜壒娈婄被镄勫叏閮ㄥ硅薄銆傝繍鐢ㄧ户镓垮师鍒欎娇寰楃郴缁熸ā鍨嬫瘆杈幂亩缁冧篃姣旇缉娓呮榈銆
涓夈佸氭
鏂规硶镄勯吨鍐欍侀吨杞戒笌锷ㄦ佽繛鎺ユ瀯鎴愬氭佹э绂 Java涔嬫墍浠ュ紩鍏ュ氭佺殑姒傚康锛屽师锲犱箣涓鏄瀹冨湪绫荤殑缁ф圹闂棰树笂鍜孋++涓嶅悓锛屽悗钥呭厑璁稿氱户镓匡纴杩欑‘瀹炵粰鍏跺甫𨱒ョ殑闱炲父寮哄ぇ镄勫姛鑳斤纴浣嗘槸澶嶆潅镄勭户镓垮叧绯讳篃缁机++寮鍙戣呭甫𨱒ヤ简镟村ぇ镄勯夯鐑︺
涓轰简瑙勯伩椋庨橹锛孞ava鍙鍏佽稿崟缁ф圹锛屾淳鐢熺被涓庡熀绫婚棿链塈S-A镄勫叧绯伙纸鍗斥灭尗钬涟s a 钬滃姩鐗┾濓级銆傝繖镙峰仛铏界劧淇濊瘉浜嗙户镓垮叧绯荤殑绠鍗曟槑浜嗭纴浣嗘槸锷垮繀鍦ㄥ姛鑳戒笂链夊緢澶х殑闄愬埗锛屾墍浠ワ纴Java寮曞叆浜嗗氭佹х殑姒傚康浠ュ讥琛ヨ繖镣圭殑涓嶈冻锛屾ゅ栵纴鎶借薄绫诲拰鎺ュ彛涔熸槸瑙e喅鍗旷户镓胯勫畾闄愬埗镄勯吨瑕佹坠娈点傚悓镞讹纴澶氭佷篃鏄闱㈠悜瀵硅薄缂栫▼镄勭簿楂撴墍鍦ㄣ
瑕佺悊瑙e氭佹э纴棣栧厛瑕佺煡阆扑粈涔堟槸钬滃悜涓婅浆鍨嬧濄
鎴戝畾涔変简涓涓瀛愮被Cat锛屽畠缁ф圹浜咥nimal绫伙纴闾d箞钖庤呭氨鏄鍓嶈呯殑鐖剁被銆傛垜鍙浠ラ氲繃
Cat c = new Cat(); 渚嫔寲涓涓狢at镄勫硅薄锛岃繖涓涓嶉毦鐞呜В銆
浣嗗綋鎴戣繖镙峰畾涔夋椂锛 Animal a = new Cat();
鐖剁被寮旷敤鍙鑳借皟鐢ㄧ埗绫讳腑瀛桦湪镄勬柟娉曞拰灞炴э纴涓嶈兘璋幂敤瀛愮被镄勬墿灞曢儴鍒嗭绂锲犱负鐖剁被寮旷敤鎸囧悜镄勬槸鍫嗕腑瀛愮被瀵硅薄缁ф圹镄勭埗绫伙绂锛堜絾鏄濡傛灉寮哄埗鎶婅秴绫昏浆鎹㈡垚瀛愮被镄勮瘽锛屽氨鍙浠ヨ皟鐢ㄥ瓙绫讳腑鏂版坊锷犺岃秴绫绘病链夌殑鏂规硶浜嗐傦级
钖屾椂锛岀埗绫讳腑镄勪竴涓鏂规硶鍙链夊湪鐖剁被涓瀹氢箟钥屽湪瀛愮被涓娌℃湁閲嶅啓镄勬儏鍐典笅锛屾墠鍙浠ヨ鐖剁被绫诲瀷镄勫紩鐢ㄨ皟鐢锛