package com.oop.demo05;
//在java中所有的類都直接或者間接默認繼承object
//人 父類
public class Person {
//public 公有的
//protected 受保護的
//default 默認的
//private 私有的
//private int money=10_0000_0000;
protected String name="Tom";
public Person() {
System.out.println("Person無參執行了");
}
//私有的東西無法被繼承
public void print(){
System.out.println("Person");
}
/*public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
public void say(){
System.out.println("說了一句話");
}
*/
}
package com.oop.demo05;
//學生 is 人 子類
//子類繼承了父類就會擁有父類的全部方法,私有的方法以及成員變數無法繼承
public class Student extends Person{
String name="Marry";
public Student() {
//隱藏代碼:默認呼叫了父類的無參構造
super();//呼叫父類的構造器必須要在子類構造器的第一行
//this(name:"hello");
System.out.println("Student無參構造執行");
}
public Student(String name) {
this.name = name;
}
public void test1(String name){
print();
this.print();
super.print();
}
public void print(){
System.out.println("Student");
}
public void test(String name){
System.out.println(name);//zhangsan
System.out.println(this.name);//Marry
System.out.println(super.name);//Tom
}
}
package com.oop.demo05;
//繼承
public class A extends B{
//重寫
@Override//注解,有功能的注釋
public void test() {
System.out.println("A=>test()");
}
}
package com.oop.demo05;
//重寫都是方法的重寫與屬性無關
public class B {
public void test(){
System.out.println("B=>test()");
}
}
package com.oop.demo05;
import com.oop.demo05.Student;
public class Application {
//靜態方法和非靜態方法區別很大
//靜態方法,方法的呼叫只跟左邊定義的資料型別有關
public static void main(String[] args) {
Student student=new Student();
//student.say();
//System.out.println(student.getMoney());
//student.test1("zhangsan");
//方法的呼叫只跟左邊定義的資料型別有關
//非靜態:重寫
A a=new A();//A
a.test();
//父類的參考指向子類
B b=new A();//子類重寫了父類的方法
b.test();
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/469816.html
標籤:其他
