一:面向對象
方法的形式參數是類名的時候如何調用
A:Java中參數傳遞問題
形式參數
基本類型:形式參數的改變不影響實際參數
引用類型:形式參數的改變直接影響實際參數
B:方法的參數是類名
如果你看到了一個方法的形式參數是一個類類型(引用類型),這裏其實需要的是該類的對象。
二:繼承
例:寫一個動物類,貓和狗可以繼承他的成員變量和成員方法,但是也可以有自己私有的成員,也可以對方法進行重寫。
public class Animal {
String name;
int age;
public void eat(){
System.out.println("吃飯");
}
public void sleep() {
System.out.println("睡覺");
}
public void run(){
System.out.println("跑步");
}
}
public class Cat extends Animal {
@Override
public void eat() {
System.out.println("貓愛吃魚");
}
@Override
public void run() {
System.out.println("貓是貓步");
}
public void catchMouse(){
System.out.println("貓抓老鼠");
}
}
public class Dog extends Animal{
@Override
public void eat() {
System.out.println("狗愛吃骨頭");
}
public void lookDoor(){
System.out.println("狗看門");
}
}
public class Test {
public static void main(String[] args) {
Cat cat = new Cat();
cat.age = 2;
cat.name = "不讓";
System.out.println("名字:" + cat.name);
System.out.println("年齡:" + cat.age);
cat.catchMouse();
cat.eat();
cat.run();
cat.sleep();
Dog dog = new Dog();
dog.age = 1;
dog.name = "讓不讓";
System.out.println("名字:" + dog.name);
System.out.println("年齡:" + dog.age);
dog.lookDoor();
dog.eat();
dog.run();
dog.sleep();
}
}
運行結果:
名字:不讓
年齡:2
貓抓老鼠
貓愛吃魚
貓是貓步
睡覺
名字:讓不讓
年齡:1
狗看門
狗愛吃骨頭
跑步
睡覺
Process finished with exit code 0
註釋:子類可以繼承父類非私有的成員,但是無法繼承父類的構造方法,可以對父類的方法進行重寫,且重寫後子類的權限不能低於父類的權限,最好保持一致。
方法重寫:子類中出現了和父類中一模一樣的方法聲明(方法名,參數列表,返回值類型),也被稱爲方法覆蓋,方法複寫。