## 繼承
課堂代碼:
~~~java
package com.dodoke.demo;
public class Animal {
protected String sex;
protected int age;
protected String color;
protected String type;
public void eatFood() {
System.out.println(this.type + " is eating food");
}
protected String sleep() {
return this.type + " 正在睡覺";
}
public Animal() {
}
public Animal(String type, int age) {
this.type = type;
this.age = age;
}
public Animal(String sex, int age, String color, String type) {
super();
this.sex = sex;
this.age = age;
this.color = color;
this.type = type;
}
}
~~~
~~~Java
package com.dodoke.demo;
public class Dog extends Animal {
private String bark;
public String getBark() {
return this.bark;
}
public void setBark(String bark) {
this.bark = bark;
}
//繼承語法
/**
* [修飾符] class SubClass extends SuperClass {
* 修飾符 class 子類名稱 extends 父類名稱
* }
*/
/**
* 重寫實際上針對父類的方法進行修改
* 通常會在重寫的方法上加上注解 @Override
* @param args
*/
@Override
public String sleep() {
return this.type + "正在躺著睡覺";
}
/**
* 重寫的toString()方法
* 會在打印對象的時候,主動調用toString()方法,打印對象信息
*/
@Override
public String toString() {
return "Dog [type = "+ this.type + ",age = "+ this.age +",color = "+ this.color +",sex = "+ this.sex +",bark = "+ this.bark +"]";
}
/**
* 使用super可以調用父類被覆蓋的方法和父類的屬性
*/
public void getFatherMethodSleep() {
System.out.println(super.sleep());
eatFood();
}
/**
* 調用父類構造器
* [修飾符] 類名() {
* super();//在第一行調用父類構造器
* }
*/
public Dog() {
super();
}
public Dog(String type, int age) {
super();
this.type = type;
this.age = age;
};
public Dog(String type, int age, String color) {
super(type,age);//調用了父類的構造器,注意!!!
//this(type,age);在同一構造器中,this()和super()只能出現一個
this.color = color;
}
public Dog(String sex, int age, String color, String type, String bark) {
super(sex, age, color, type);
this.bark = bark;
}
public static void main(String[] args) {
Dog dog = new Dog();
dog.type = "狗 ";
dog.age = 9;
dog.color = "黑色";
dog.sex = "公";
dog.setBark("ww");
dog.eatFood();
System.out.println(dog.sleep());
dog.getFatherMethodSleep();
System.out.println(dog);
Dog dog2 = new Dog("狗", 7, "白色");
System.out.println(dog2);
}
}
~~~
- 課程開始
- 第一課20191008
- 第二課20191009
- HTML
- CSS
- CSS第一課
- CSS第二課
- CSS第三課
- CSS第四課
- CSS第五課
- JavaScript
- Js第一課
- Js第二課
- Js第三課
- Js第四課
- Js第五課
- Js第六課
- Js第七課
- Js-事件模型
- Js-2019-10-31-標準庫
- Js-2019-11-01- 標準庫
- Js-2019-11-01-Json
- Js-2019-11-01-對象的創建
- Js-2019-11-04-this的使用
- Js-2019-11-05-storage與異常
- Js-2019-11-05-BOM與補充知識點
- Js-2019-11-06-正則表達式和計時器
- jQuery
- jQuery-2019-11-13-初識jQuery
- jQuery-2019-11-14-jQuery節點操作
- jQuery-2019-11-15-jQuery節點操作二
- jQuery-2019-11-16-jQuery效果與動畫
- Java
- Java-2019-11-27-變量直接量數據格式運算符
- Java-2019-11-28-流程控制
- Java-2019-12-02-數組
- Java-2019-12-04 面向對象
- Java-2019-12-05-封裝
- Java-2019-12-06-深入構造器
- Java-2019-12-09-繼承
- Java-2019-12-10-多態
- Java-2019-12-10-包裝類
- Java-2019-12-11-final修飾符
- Java-2019-12-11-包裝類
- Java-2019-12-11-接口
- java-2019-12-13-設計模式
- Java-2019-12-16-集合框架
- Java-2019-12-18-集合排序
- Java-2019-12-23-常用類學習
- Java-2019-12-25-異常處理
- Java-2019-12-31-內部類詳解