繼承-父類與子類的關係,super的使用方法

案例1:
package package1;

public class Demo6 {
	public static void main(String[] args) {
		B b=new B();
		b.shwoB();//此處調用的是子類中的showB方法
	}
}
class A{
	public void shwoA() {
		System.out.println("A");
	}
	//當父類中的方法與子類方法同名時
	public void shwoB() {
		System.out.println("父類中的showB方法");
	}
}

class B extends A{
	//構造方法
	public B() {
		//調用父類的無參構造方法,能夠省略
		super();
		System.out.println("b的構造方法");
	}
	public void shwoB() {
		System.out.println("B");
		//子類調用父類
		shwoA();
		//或者
		super.shwoA();
	}
}

案例2:
package package1;

public class Demo6 {
	public static void main(String[] args) {
		JavaTeacher javaTeacher=new JavaTeacher("張三","人民大學");
		javaTeacher.teaching();
		DBTeacher dbTeacher=new DBTeacher("王五","清華大學");
		dbTeacher.teaching();
	}
}
class Teacher{
	private String name;
	private String school;
	public Teacher(String name,String school) {
		this.name=name;
		this.school=school;
	}
	//此方法爲JavaTeacher和DBTeacher共有的部分,抽取出來
	public void teaching() {
		System.out.println("授課前的準備");
	}
}

class JavaTeacher extends Teacher{
	public JavaTeacher(String name, String school) {
		//調用父類帶參數的構造方法,初始化參數值
		super(name, school);
	}
	public void teaching() {
		//調用公共方法,父類方法
		super.teaching();
		System.out.println("打來eclips");
		System.out.println("書寫java代碼");
	}
}
class DBTeacher extends Teacher{
	public DBTeacher(String name, String school) {
		//調用父類帶參數的構造方法,初始化參數值
		super(name, school);
	}
	public void teaching() {
		System.out.println("打開orcale");
		System.out.println("建立數據庫");
	}
}

案例3:
package package1;

public class Demo8 {
public static void main(String[] args) {
	Student stu=new Student("張三", 20);
	System.out.println(stu.toString());
	Student stu1=new Student("李四", 20);
	System.out.println(stu.equals(stu1));
}
}
//寫不寫Object都同樣都會繼承Object
class Student extends Object{
	private String name;
	private int age;
	public Student(String name,int age){
		this.name=name;
		this.age=age;
	}
	//重寫Object類中的equals方法
	public boolean equals(Object obj) {
		//本身跟本身比
		if(this==obj) {
			return true;
		}
		if(obj==null) {
			return false;
		}
		if(this.getClass()!=obj.getClass()) {
			return false;
		}
		Student student=(Student) obj;
		if(this.age!=age) {
			return false;
		}
		if(this.name==null) {
			if(student.name!=null) {
				return false;
			}
		}else if(this.name.equals(student.name)){
			return false;
		}
		return true;
	}
}
相關文章
相關標籤/搜索