Board logo

標題: 物件導向-繼承(一) [打印本頁]

作者: 周政輝    時間: 2018-3-17 10:48     標題: 物件導向-繼承(一)

本帖最後由 周政輝 於 2018-3-17 11:37 編輯

所謂繼承(Inheritance)是一種類別之間的關係,可以利用現有類別衍生出新的類別,新的類別可以與現有類別分享共同的屬性、方法與資料結構等,在物件導向程式設計中利用繼承,可以達到程式碼重複使用的優點。

繼承功能可以在建立新類別時,修改、添加或繼承現有類別的定義。建立一種類別後,如果須要再建立許多大同小異的類別,就可以利用繼承特性,分別繼承這個現有的類別,並且將差異部分加以修改或添加。

被繼承的類別稱為父類別或基礎類別(Base Class),而經由繼承產生的類別,則稱為子類別或衍生類別(Derived Class),子類別不僅可以繼承父類別的特性(屬性與方法),也可以修改或添加特性。

簡單來說,因為是繼承關係,所以兒子可以擁有爸爸所有的一切,也可以有權力可以進行更改。
Game
  1. package kuas.mis.edu.tw;

  2. public class Game {

  3.         public String Screen;
  4.         public String JoyStick;
  5.         public int Power;
  6.        
  7.         public Game(String Screen,String JoyStick, int Power) {
  8.                 this.Screen = Screen;
  9.                 this.JoyStick = JoyStick;
  10.                 this.Power = Power;
  11.         }
  12.        
  13.        
  14.         public void Open()
  15.         {
  16.                 System.out.println("主機開機中");
  17.         }
  18.        
  19.         public void Close()
  20.         {
  21.                 System.out.println("主機關機中");

  22.         }
  23.        
  24.        
  25.        
  26. }
複製代碼
PS4
  1. package kuas.mis.edu.tw;

  2. public class PS4 extends Game {

  3.        
  4.         public PS4(String Screen,String JoyStick, int Power) {
  5.                
  6.                 super(Screen, JoyStick, Power);
  7.         }
  8.        
  9. }
複製代碼
Main
  1. package kuas.mis.edu.tw;

  2. public class Main {

  3.         public static void main(String[] args) {
  4.                 // TODO 自動產生的方法 Stub
  5.                 PS4 game = new PS4("5K螢幕","雙把手",110);
  6.                 game.Open();
  7.                
  8.                 game.Close();
  9.         }
  10. }
複製代碼

作者: 張健勳    時間: 2018-3-17 11:15

  1. package bbs.istak.org.tw;

  2. public class Main {

  3.         public static void main(String[] args) {
  4.                 // TODO 自動產生的方法 Stub
  5.                
  6.                 PS5 game = new PS5("8K螢幕","PS87搖桿","110");
  7.                 game.open();
  8.                 game.clo();
  9.                
  10.         }

  11. }
複製代碼
  1. package bbs.istak.org.tw;

  2. public class G {

  3.         public String S;
  4.         public String JS;
  5.         public String p;
  6.        
  7.         public G(String S,String JS,String p)
  8.         {
  9.                 this.S = S;
  10.                 this.JS = JS;
  11.                 this.p = p;
  12.         }
  13.        
  14.         public void open()
  15.         {
  16.                 System.out.println("主機開機中");
  17.         }
  18.         public void clo()
  19.         {
  20.                 System.out.println("主機關機中");
  21.         }
  22.        
  23. }
複製代碼
  1. package bbs.istak.org.tw;

  2. public class PS5 extends G{
  3.        
  4.         public PS5(String S,String JS,String p) {
  5.                
  6.                 super(S,JS,p);
  7. }
  8. }
複製代碼

作者: 蔡季樺    時間: 2018-3-17 11:17

  1. package bbs.istak.org.tw;

  2. public class Game {
  3.         public String Screen;
  4.         public String Joystick;
  5.         public int Power;
  6.        
  7.         public Game(String Screen,String Joystick,int Power)
  8.         {
  9.                 this.Screen = Screen;
  10.                 this.Joystick = Joystick;
  11.                 this.Power = Power;
  12.         }
  13.         public void Open()
  14.         {
  15.                 System.out.println("主機開機中");
  16.         }
  17.         public void Close()
  18.         {
  19.                 System.out.println("主機關機中");
  20.         }
  21. }
複製代碼
  1. package bbs.istak.org.tw;

  2. public class PS4 extends Game{

  3.         public PS4(String Screen, String Joystick, int Power) {
  4.                 super(Screen, Joystick, Power);
  5.         }




  6. }
複製代碼
  1. package bbs.istak.org.tw;

  2. public class Main {

  3.         public static void main(String[] args) {
  4.                 // TODO 自動產生的方法 Stub
  5.                 PS4 g = new PS4("5K","keyboard",110);
  6.          g.Open();
  7.          g.Close();       
  8.         }
  9. }
複製代碼

作者: 蔡庭豪    時間: 2018-3-17 11:20

  1. package bbs.istak.org.tw;

  2. public class Main {

  3.         public static void main(String[] args) {
  4.                 // TODO 自動產生的方法 Stub
  5.    
  6.                 Switch Gb = new Switch("4k","keyboard",110);
  7.                 Gb.Open();
  8.                 Gb.Close();
  9.                
  10.         }

  11. }
複製代碼
  1. package bbs.istak.org.tw;

  2. public class Game {

  3.         public String screen;
  4.         public String joystick;
  5.         public int power;
  6.        
  7.         public Game(String screen, String joystick,int power){
  8.                
  9.                 this.screen = screen;
  10.                 this.joystick = joystick;
  11.                 this.power =power;
  12.        
  13.         }
  14.        
  15.         public void Open(){
  16.                
  17.                 System.out.println("主機開機中");
  18.                
  19.         }
  20.        
  21.     public void Close(){
  22.                
  23.             System.out.println("主機關機中");
  24.                
  25.         }
  26. }
複製代碼
  1. package bbs.istak.org.tw;

  2. public class Switch extends Game {

  3.         public Switch(String screen, String joystick, int power) {
  4.                 super(screen, joystick, power);
  5.                 // TODO 自動產生的建構子 Stub
  6.         }

  7.        
  8. }
複製代碼

作者: 林侑成    時間: 2018-3-17 11:21

  1. package Asdf;

  2. public class Student {
  3.         public String Screen;
  4.         public String Rocker;
  5.         public int Power;
  6.         Student(String Screen, String Rocker, int Power)
  7.         {
  8.                 this.Screen=Screen;
  9.                 this.Rocker=Rocker;
  10.                 this.Power=Power;
  11.         }
  12.         public static void Open()
  13.          {
  14.          System.out.println("主機開機中...");
  15.      }
  16.          public static void Close()
  17.          {
  18.          System.out.println("主機關機中...");
  19.      }
  20. }package Asdf;

  21. public class test {
  22.     public static void main(String[] args)
  23.     {
  24.       PS4 game = new PS4("5K螢幕","雙把手",110);                        
  25.       Student.Open();
  26.       Student.Close();
  27.     }
  28. }package Asdf;

  29. public class PS4 {
  30.           public PS4(String Screen,String JoyStick, int Power)
  31.           {
  32.           super();
  33.       }
  34. }
複製代碼

作者: 黃茂勛    時間: 2018-3-17 18:03

  1. public class Game {
  2.        
  3.         public String Screen;
  4.     public String JoyStick;
  5.     public int Power;
  6.        
  7.         public Game(String Screen,String JoyStick, int Power){
  8.                 this.Screen = Screen;
  9.         this.JoyStick = JoyStick;
  10.         this.Power = Power;  
  11.     }       
  12.        
  13.         public void Open(){
  14.            
  15.             System.out.println("主機開機中");
  16.     }
  17.    
  18.     public void Close(){
  19.             System.out.println("主機關機中");
  20.     }
  21. }
複製代碼
  1. public class PS4 extends Game{
  2.         public PS4(String Screen, String JoyStick, int Power){
  3.                 super(Screen, JoyStick, Power);       
  4.         }
  5. }
複製代碼
  1. public class Main {
  2.         public static void main(String[] args) {
  3.                 PS4 game = new PS4("5k螢幕","雙把手",110);
  4.         game.Open();
  5.         game.Close();
  6.         }

  7. }
複製代碼





歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/) Powered by Discuz! 7.2