「Java」「super & modifier」 Chapter3 Question6

Given:
public class Test4 {
 public static void main(String[] args) {

 }
}

abstract class Shape{ //抽象類別
 Shape(){}//建構子
 protected void area() { //無回傳直的物件方法
  System.out.println("Shape");
 }
 }

class Square extends Shape{
 int a;
 Square(int a){
  this.a=a;
 }
 public void area() {
  System.out.println("Square");
 }
}
class Rectangle extends Square{
 int b, c;
 Rectangle(int b, int c){
  /*insert code*/
  //缺少 super(b) 或 super(c)。super呼叫父類別的Square(int a)
  //因 b 與 c 是 int型別
  this.b=b;
  this.c=c;
 }
 void area() { 
 //由於Square的area物件方法修飾子是public,所以這子類別的area物件方法,也必須使用相同或更低權限。
 //答案: public void area() {
  System.out.println("Rectangle");
 }
}

Answer:
super(b)的呼叫
父子類別的修飾子權限

留言

這個網誌中的熱門文章

[Excel]國曆轉農曆VBA

「CSS」「div區塊介紹」 三欄式網頁排版設計

「生活」眉毛觀人