Board logo

標題: 繼承 (一) [打印本頁]

作者: tonyh    時間: 2022-9-3 19:07     標題: 繼承 (一)

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

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

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

C++支援多重繼承(一個類別擁有多個父類別),但Java不直接支援多重繼承,類似的機制則必須透過介面來完成。

歸納上述,關於繼承的四大特性如下:

1.子類別可以繼承父類別的特性。
2.子類別可以添加新的特性。
3.子類別可以修改並重新定義自父類別繼承下來的特性。
4.子類別繼承父類別時,不需要複製父類別的程式碼,造成程式碼重複。




  1. public class Ch68 {

  2.         public static void main(String[] args) {
  3.             Dog d1=new Dog("憨憨",2,1.28);
  4.             Dog d2=new Dog("球球",1,1.35);
  5.             Cat c1=new Cat("咪咪",3,0.95);
  6.             d1.showProfile();
  7.             d2.showProfile();
  8.             c1.showProfile();
  9.         }

  10. }

  11. class Animal{
  12.        
  13.         String name;
  14.         int age;
  15.         double weight;
  16.        
  17.         Animal(String n, int a, double w)
  18.         {
  19.                 name=n;
  20.                 age=a;
  21.                 weight=w;
  22.         }
  23.        
  24.         void showProfile()
  25.         {
  26.                 System.out.println(name+"今年"+age+"歲,體重"+weight+"公斤.");
  27.         }       
  28. }

  29. class Dog extends Animal
  30. {
  31.         Dog(String n, int a, double w)
  32.         {
  33.                 super(n,a,w);
  34.         }
  35. }

  36. class Cat extends Animal
  37. {
  38.         Cat(String n, int a, double w)
  39.         {
  40.                 super(n,a,w);
  41.         }
  42. }
複製代碼

作者: 余柏緯    時間: 2022-9-3 20:06

  1. public class ch68 {

  2.         public static void main(String[] args) {
  3.                 Dog d1=new Dog("憨憨",2,1.28f);
  4.                 Dog d2=new Dog("球球",1,1.35f);
  5.                 Cat c1=new Cat("咪咪",3,0.95f);
  6.                 d1.showProfile();
  7.                 d2.showProfile();
  8.                 c1.showProfile();
  9.         }
  10. }
  11. class Animal{
  12.        
  13.         String name;
  14.         int age;
  15.         float weight;
  16.        
  17.         Animal(String n,int a,float w)
  18.         {
  19.                 name=n;
  20.                 age=a;
  21.                 weight=w;
  22.         }
  23.        
  24.         void showProfile()
  25.         {
  26.                 System.out.println(name+"今年"+age+"歲,體重"+weight+"公斤.");
  27.         }
  28. }
  29. class Dog extends Animal
  30. {
  31.         Dog(String n,int a,float w)
  32.         {
  33.                 super(n,a,w);
  34.         }
  35. }
  36. class Cat extends Animal
  37. {
  38.         Cat(String n,int a,float w)
  39.         {
  40.                 super(n,a,w);
  41.         }
  42. }
複製代碼

作者: 黃子倢    時間: 2022-9-3 20:06

  1. public class JPA01 {

  2.             public static void main(String[] args) {
  3.                 Dog d1=new Dog("憨憨",2,1.28);
  4.                 Dog d2=new Dog("球球",1,1.35);
  5.                 Cat c1=new Cat("咪咪",3,0.95);
  6.                 d1.showProfile();
  7.                 d2.showProfile();
  8.                 c1.showProfile();
  9.             }

  10.     }

  11.     class Animal{
  12.            
  13.             String name;
  14.             int age;
  15.             double weight;
  16.             Animal(String n, int a, double w)
  17.             {
  18.                     name=n;
  19.                     age=a;
  20.                     weight=w;
  21.             }
  22.            
  23.             void showProfile()
  24.             {
  25.                     System.out.println(name+"今年"+age+"歲,體重"+weight+"公斤.");
  26.             }      
  27.     }

  28.     class Dog extends Animal
  29.     {
  30.             Dog(String n, int a, double w)
  31.             {
  32.                     super(n,a,w);
  33.             }
  34.     }

  35.     class Cat extends Animal
  36.     {
  37.             Cat(String n, int a, double w)
  38.             {
  39.                     super(n,a,w);
  40.             }
  41.     }
複製代碼

作者: 丁肇志    時間: 2022-9-3 20:16

  1. public class Ch68 {
  2.         public static void main(String[] args) {
  3.                 Dog d1 = new Dog("憨憨", 2, 1.28);
  4.                 Dog d2 = new Dog("球球", 1, 1.35);
  5.                 Cat c1 = new Cat("咪咪", 3, 0.95);
  6.                 d1.showProfile();
  7.                 d2.showProfile();
  8.                 c1.showProfile();
  9.         }
  10. }

  11. class Animal {
  12.         String name;
  13.         int age;
  14.         double weight;
  15.        
  16.         Animal(String n, int a, double w) {
  17.                 name = n;
  18.                 age = a;
  19.                 weight = w;
  20.         }
  21.        
  22.         void showProfile() {
  23.                 System.out.println(name + "今年" + age + "歲,體重" + weight + "公斤.");
  24.         }
  25. }

  26. class Dog extends Animal {
  27.         Dog(String n, int a, double w) {
  28.                 super(n, a, w);
  29.         }
  30. }

  31. class Cat extends Animal {
  32.         Cat(String n, int a, double w) {
  33.                 super(n, a, w);
  34.         }
  35. }
複製代碼

作者: 許洧熏    時間: 2022-9-3 20:16

  1. public class Ch01 {
  2.         public static void main(String[] args) {
  3.                 Dog d1=new Dog("憨憨",2,1.28);
  4.                 Dog d2=new Dog("球球",1,1.35);
  5.                 Cat c1=new Cat("咪咪",3,0.95);
  6.                 d1.showProfile();
  7.                 d2.showProfile();
  8.                 c1.showProfile();
  9.         }
  10. }
  11. class Animal{
  12.         String name;
  13.         int age;
  14.         double weight;

  15.         Animal(String n,int a,double w)
  16.         {
  17.                 name=n;
  18.                 age=a;
  19.                 weight=w;
  20.         }
  21.         void showProfile()
  22.         {
  23.                 System.out.println(name+"今年"+age+"歲,體重"+weight+"公斤.");
  24.         }
  25. }
  26. class Dog extends Animal
  27. {
  28.         Dog(String n,int a,double w)
  29.         {
  30.                 super(n,a,w);
  31.         }
  32. }

  33. class Cat extends Animal
  34. {
  35.         Cat(String n,int a,double w)
  36.         {
  37.                 super(n,a,w);
  38.         }
  39. }
複製代碼

作者: 曾元瑜    時間: 2022-9-3 20:16

  1. public class Ch01 {

  2.         public static void main(String[] args) {
  3.                 Dog d1=new Dog("憨憨",2,1.28);
  4.                 Dog d2=new Dog("球球",1,1.35);
  5.                 Cat c1=new Cat("咪咪",3,0.95);
  6.                 d1.showProfile();
  7.                 d2.showProfile();
  8.                 c1.showProfile();

  9.         }
  10. }
  11. class Animal{
  12.         String name;
  13.         int age;
  14.         double weight;
  15.         Animal(String n,int a,double w)
  16.         {
  17.                 name=n;
  18.                 age=a;
  19.                 weight=w;
  20.         }
  21.         void showProfile()
  22.         {
  23.                 System.out.println(name+"今年"+age+"歲,體重"+weight+"公斤");
  24.         }
  25. }
  26. class Dog extends Animal{
  27.         Dog(String n,int a,double w){
  28.                 super(n,a,w);
  29.         }
  30. }
  31. class Cat extends Animal{
  32.         Cat(String n,int a,double w){
  33.                 super(n,a,w);
  34.         }
  35. }
複製代碼

作者: 呂尚霖    時間: 2022-9-3 20:20

  1. public class Ch01
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 Dog d1=new Dog("憨憨",2,1.28);
  6.                 Dog d2=new Dog("球球",1,1.35);
  7.                 Cat c1=new Cat("咪咪",3,0.95);
  8.                 d1.showProfile();
  9.                 d2.showProfile();
  10.                 c1.showProfile();
  11.         }

  12. }
  13. class Animal
  14. {
  15.         String name;
  16.         int age;
  17.         double weight;

  18.         Animal(String n, int a, double w)
  19.         {
  20.                 name=n;
  21.                 age=a;
  22.                 weight=w;
  23.         }

  24.         void showProfile()
  25.         {
  26.                 System.out.println(name+"今年"+age+"歲,體重"+weight+"公斤.");
  27.         }      
  28. }
  29. class Dog extends Animal
  30. {
  31.         Dog(String n, int a, double w)
  32.         {
  33.                 super(n,a,w);
  34.         }
  35. }
  36. class Cat extends Animal
  37. {
  38.         Cat(String n, int a, double w)
  39.         {
  40.                 super(n,a,w);
  41.         }
  42. }
複製代碼

作者: 吳湘儀    時間: 2022-9-3 20:21

  1. public class Ch01 {

  2.         public static void main(String[] args) {
  3.                 Dog d1=new Dog("憨憨",2,1.28);
  4.                 Dog d2=new Dog("球球",1,1.35);
  5.                 Cat c1=new Cat("咪咪",3,0.95);
  6.                 d1.showProfile();
  7.                 d2.showProfile();
  8.                 c1.showProfile();
  9.         }

  10. }

  11. class Animal{

  12.         String name;
  13.         int age;
  14.         double weight;

  15.         Animal(String n, int a, double w)
  16.         {
  17.                 name=n;
  18.                 age=a;
  19.                 weight=w;
  20.         }

  21.         void showProfile()
  22.         {
  23.                 System.out.println(name+"今年"+age+"歲,體重"+weight+"公斤.");
  24.         }      
  25. }

  26. class Dog extends Animal
  27. {
  28.         Dog(String n, int a, double w)
  29.         {
  30.                 super(n,a,w);
  31.         }
  32. }

  33. class Cat extends Animal
  34. {
  35.         Cat(String n, int a, double w)
  36.         {
  37.                 super(n,a,w);
  38.         }
  39. }
複製代碼

作者: 許志捷    時間: 2022-9-3 20:24

  1. public class Ch01 {

  2.         public static void main(String[] args) {
  3.                 Dog d1=new Dog("憨憨",2,1.28f);
  4.                 Dog d2=new Dog("球球",1,1.35f);
  5.                 Cat c1=new Cat("咪咪",3,0.95f);
  6.                 d1.showProfile();
  7.                 d2.showProfile();
  8.                 c1.showProfile();
  9.         }

  10. }
  11. class Animal{
  12.         String name;
  13.         int age;
  14.         float wgh;
  15.         Animal(String n,int a,float w)
  16.         {
  17.                 name=n;
  18.                 age=a;
  19.                 wgh=w;
  20.         }
  21.         void showProfile()
  22.         {
  23.                 System.out.println(name+"今年"+age+"歲,體重"+wgh+"公斤.");
  24.         }
  25. }
  26. class Dog extends Animal
  27. {
  28.         Dog(String n,int a,float w)
  29.         {
  30.                 super(n,a,w);
  31.         }
  32. }
  33. class Cat extends Animal
  34. {
  35.         Cat(String n,int a,float w)
  36.         {
  37.                 super(n,a,w);
  38.         }
  39. }
複製代碼

作者: 王法棣    時間: 2022-9-3 20:24

  1. public class Ch68 {
  2.         public static void main(String[] args) {
  3.                 Dog d1=new Dog("憨憨",2,1.28);
  4.                 Dog d2=new Dog("球球",1,1.35);
  5.                 Cat c1=new Cat("咪咪",3,0.95);
  6.                 d1.showProfile();
  7.                 d2.showProfile();
  8.                 c1.showProfile();
  9.         }
  10. }

  11. class Animal{
  12.         String name;
  13.         int age;
  14.         double weight;

  15.         Animal(String n,int a,double w){
  16.                 name=n;
  17.                 age=a;
  18.                 weight=w;
  19.         }
  20.         void showProfile(){
  21.                 System.out.println(name+"今年"+age+"歲,體重"+weight+"公斤。");
  22.         }
  23. }
  24. class Dog extends Animal{
  25.         Dog(String n,int a,double w){
  26.                 super(n,a,w);
  27.         }
  28. }
  29. class Cat extends Animal{
  30.         Cat(String n,int a,double w){
  31.                 super(n,a,w);
  32.         }
  33. }
複製代碼

作者: 張博竣    時間: 2022-9-3 20:24

  1. public class Ch68 {

  2.         public static void main(String[] args) {
  3.             Dog d1=new Dog("憨憨",2,1.28);
  4.             Dog d2=new Dog("球球",1,1.35);
  5.             Cat c1=new Cat("咪咪",3,0.95);
  6.             d1.showProfile();
  7.             d2.showProfile();
  8.             c1.showProfile();
  9.         }

  10. }

  11. class Animal{
  12.       
  13.         String name;
  14.         int age;
  15.         double weight;
  16.       
  17.         Animal(String n, int a, double w)
  18.         {
  19.                 name=n;
  20.                 age=a;
  21.                 weight=w;
  22.         }
  23.       
  24.         void showProfile()
  25.         {
  26.                 System.out.println(name+"今年"+age+"歲,體重"+weight+"公斤.");
  27.         }      
  28. }

  29. class Dog extends Animal
  30. {
  31.         Dog(String n, int a, double w)
  32.         {
  33.                 super(n,a,w);
  34.         }
  35. }

  36. class Cat extends Animal
  37. {
  38.         Cat(String n, int a, double w)
  39.         {
  40.                 super(n,a,w);
  41.         }
  42. }
複製代碼

作者: 王秉鈞    時間: 2022-9-3 20:48

  1. public class Ch31 {
  2.         public static void main(String[] args) {
  3.        Dog d1=new Dog("史東西",2,1.28);
  4.        Dog d2=new Dog("使冬吸",1,1.35);
  5.        Cat c1=new Cat("哈哈",3,0.95);
  6.        d1=showProfile();
  7.        d2.showProfile();
  8.        c1.showProfile();
  9.        }
  10.     }
  11.     class Animal
  12.     {
  13.             String name;
  14.             int age;
  15.             double weight;
  16.             Animal(String n,int a,double w)
  17.             {
  18.                     name=n;
  19.                     age=a;
  20.                     weight=w;
  21.             }
  22.             void showProfile()
  23.             {
  24.                     System.out.println(name+"今年"+age+"歲,體重"+weight+"公斤");
  25.             }
  26.     }
  27.     class Dog extends Animal
  28.     {
  29.          Dog(String n, int a,double w)
  30.          {
  31.                  super(n,a,w);
  32.          }
  33.     }
  34.     class Cat extends Animal
  35.     {
  36.             Cat(String n,int a,double w)
  37.             {
  38.                     super(n,a,w);
  39.             }
  40. }
複製代碼





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