继承-父类与子类的关系,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;
	}
}
相关文章
相关标签/搜索