大數據<javaSE + Linux精英實訓班>_day_09
阿新 • • 發佈:2018-03-25
strac ati 去重 ... print public int() 成員 tid
1:面向對象->繼承
描述事物之間的所屬關系。使用種事物之間形成一種關系體系。
在java中類的繼承是指在現有類的基礎上構建一個新的類,構建出來的新類我們稱作子類,
現有的類稱作為父類。
子類會自動擁有父類所有的可繼承的屬性和方法。
package com.itstar.demo01; /* * 定義員工類 * 屬性和方法: * 成員變量 姓名 * 成員方法 工作 */ public class Emplpyee { String name;public void work() { System.out.println("員工在工作"); } }
package com.itstar.demo01; /* * 定義研發部: * 屬於員工中的一種 * 研發共工繼承研發類 * * 關鍵字:extends * 子類Develop 父類Emplpyee * 子類自動擁有父類中可以繼承的屬性和方法 * */ public class Develop extends Emplpyee{ // 子類中定義了方法 public void print() {// 打印的是父類的成員變量 System.err.println(name); } }
package com.itstar.demo01; /* * 定義維護運維類 * 屬於員工的一種,繼承員工類 */ public class YunWei extends Emplpyee{ public void weihu() { System.out.println(name); } }
package com.itstar.demo01; public class Test { public static voidmain(String[] args) { // 創建研發員工類的對象 Develop d = new Develop(); d.name = "裂縫"; d.work(); // 創建維護類對象 YunWei y = new YunWei(); y.name = "收嗯"; y.weihu(); y.work(); } }
2:面向對象->繼承好處 1、繼承的出現提升了代碼的復用性,提高軟件開發效率。 2、繼承的出現讓我們類與類之間產生了關系(繼承關系),提供了多態的前提。繼承和多態是密不可分的 的關系。 3、父類中的屬性和方法子類可以直接用,或者創建對象也可以用。
package com.itstar.demo02; public class fu { int a = 1; }
package com.itstar.demo02; public class Zi extends fu{ int a = 3; // 創建方法 public void show() { int a = 4; System.out.println(a); // this可以用成員變量 //System.out.println(this.a); // 調用的既不是成員變量也不是方法當中的變量,而是父類當中的變量 System.out.println(super.a); } }
package com.itstar.demo02; public class Test { public static void main(String[] args) { // 創建對象 Zi z = new Zi(); int i = z.a; System.out.println(i); // 子類自己有的自然調用自己的,沒有的調用父類的 // 方法的就近原則,不是覆蓋 z.show(); } }
例子:
package com.itstar.demo03; public class Fu { public void show() { System.out.println("父類中的show方法"); } }
package com.itstar.demo03; public class Zi extends Fu{ public void show() { System.out.println("子類的重寫show方法"); } public void show2() { System.out.println("子類中的show2方法"); } }
package com.itstar.demo03; public class Test { public static void main(String[] args) { Zi z = new Zi(); // 子類中沒有show方法,自然去父類當中找 z.show(); z.show2(); } }
代碼例子:
package com.itstar.demo04; /* * 定義手機功能 * 功能:打電話、發短信、微信 */ public class Phone { public void Call() { System.out.println("手機在打電話"); } public void sendMessage() { System.out.println("手機在發短信"); } public void weChat() { System.out.println("手機在微信"); } }
package com.itstar.demo04; /* * 方法覆蓋的註意事項: * 子類方法覆蓋父類方法,必須保證權限要大於等於父類的權限 * 子類重寫父類的方法,保證子類的權限要大於等於父類的權限 * java中有4大權限:依次減小 * public:公有 * protected:受保護的 * default:默認(特別,不寫)權限 * private:私有的 */ public class AndroindPhone extends Phone{ public void weChat() { super.weChat(); System.out.println("跳一跳"); System.out.println("腦強王者"); } }
package com.itstar.demo04; public class Test { public static void main(String[] args) { // 創建對象 Phone p = new Phone(); p.Call(); p.sendMessage(); p.weChat(); AndroindPhone ap = new AndroindPhone(); ap.weChat(); } }
package com.itstar.demo05; /* * 定義類,開發工程師類 * ee工程師:工作 * 安卓工程師:工作 */ public abstract class Develop { public abstract void work(); }
package com.itstar.demo05; public class JavaEE extends Develop{ // 重寫父類的抽象方法 public void work() { System.out.println("JAVAEE工程師正在開發後臺管理系統"); } }
package com.itstar.demo05; public class Android extends Develop{ public void work() { System.out.println("Andoid工程師正在開發手機軟件"); } }
package com.itstar.demo05; public class Test { public static void main(String[] args) { // 父類為抽象類 所以沒有辦法實例化 JavaEE j = new JavaEE(); j.work(); Android a = new Android(); a.work(); } }
package com.itstar.demo06; public abstract class Animal { public void sleep() { System.out.println("動物在睡覺"); } //private abstract void show();不可以,原因,本來抽象類的存在就是讓子類去重寫抽象類方法的 public abstract void show(); }
package com.itstar.demo06; public class Cat extends Animal{ public void show() { System.out.println("小貓正在睡覺"); } }
package com.itstar.demo06; public class Test { public static void main(String[] args) { Cat c = new Cat(); c.sleep(); c.show(); } }
package com.itstar.demo07; /* * 員工類 * */ public abstract class Employee { private String name; private String id; public abstract void work(); public String getName() { return name; } public void setName(String name) { this.name = name; } public String getId() { return id; } public void setId(String id) { this.id = id; } }
package com.itstar.demo07; /* * 研發部 */ public abstract class Develop extends Employee{ }
package com.itstar.demo07; public class JavaEE extends Develop{ public void work() { System.out.println("JavaEE在開發淘寶" + super.getId() + "...." + super.getName()); } }
package com.itstar.demo07; public abstract class YunWei extends Employee{ }
package com.itstar.demo07; public class NetWork extends YunWei{ public void work() { System.out.println("網絡工程師在裝網絡" + super.getId() + "..." + super.getName()); } }
package com.itstar.demo07; public class Test { public static void main(String[] args) { JavaEE ee = new JavaEE(); NetWork n = new NetWork(); ee.setId("研發1號小弟"); ee.setName("小店"); n.setId("運維2號小弟"); n.setName("農二"); ee.work(); n.work(); } }
大數據<javaSE + Linux精英實訓班>_day_09