-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLesson5_3.java
More file actions
60 lines (57 loc) · 1.41 KB
/
Lesson5_3.java
File metadata and controls
60 lines (57 loc) · 1.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/**
面試題: overloading和overriding的區別?
overloading:方法的重載,發生在同一個類中,方法名相同,參數列表不同,與返回值無關。
overloading: 方法的重寫,發生在子父類中,方法名相同,參數列表相同,
返回值相同,子類的訪問修飾符要大於或等於父類,子類的異常聲明必須小於或等於父類
的異常聲明,如果方法被private,static,final修飾,那麼不能被重寫
*/
public class Lesson5_3{
public static void main(String[] args){
HomeDog hg=new HomeDog("旺旺");
hg.print();
hg.eat();
//Dog d=new Dog();
//d.name="sd";
HuskyDog kd = new HuskyDog();
kd.eat();
}
}
class Dog{
protected String name;
private String sex;
public Dog(String name,String sex){
this.name = name;
this.sex = sex;
System.out.println("我是Dog構造");
}
protected void eat(){
System.out.println("吃飯");
}
}
class HomeDog extends Dog{
public HomeDog(String name){
super(name,"公");//只能在第一句
System.out.println("我是HomeDog構造");
}
public void print(){
//super.屬性 表示調用父類的屬性,如果是繼承過來的屬性,那麼super可以省略
System.out.println(super.name+"我是一隻狗");
}
//重寫父類方法
public void eat(){
super.eat();//調用父類得方法
System.out.println("我是家狗,我喜歡吃骨頭");
}
}
class HuskyDog extends Dog{
public HuskyDog(){
super("哈士奇","母");
System.out.println("我是HuskyDog構造");
}
public void show(){
System.out.println("我是哈士奇");
}
public void eat(){
System.out.println("我是Husky狗,我喜歡吃雞肝");
}
}