彦舜筹备出书中:继承关系中抽象类中,普通方法中调用被子类覆写的抽象方法

package cm.abstracts.application;

//这个类用来测试:在抽象类的普通方法中调用抽象方法
public class InstanceFfourtyFive {
	public static void main(String[] args) {
		//有构造方法不一定有对应的抽象方法,有抽象方法必有对应的构造方法
		//通过子类实例化抽象类对象
		Love l = new Hate();
		//直接调用抽象类中定义的抽象方法,其具体内容已经过子类覆写
		l.diaoChou();
	}
}

//创建抽象模板类:父类,必有子类,关键字abstract
abstract class Love{
	//对类中程序自动创建的隐式构造方法,要习惯性创建,养成一种良好习惯
	public Love() {}
	
	//创建抽象类中的普通方法,并在此抽象类的此普通方法中调用抽象方法
	/**	抽象类中可以定义普通方法,最为关键的是,这些普通方法可以直接调用抽象类中定义的抽象方法,而具体的抽象方法是经过子类覆写的	*/
	protected void diaoChou() {
		//经过子类覆写的抽象方法的具体内容
		this.love();
	}
	
	//抽象类中定义的抽象方法
	public abstract void love();
}

//创建子类:抽象类必有子类,一个子类只能有一个抽象类(父类)
class Hate extends Love{
	//对类中程序自动创建的隐式构造方法,要习惯性创建,养成一种良好习惯
	public Hate() {}
	
	@Override  //备注:中文意思覆写、重写、覆盖,重写抽象类中的同名抽象方法
	/**	抽象类中可以定义普通方法,最为关键的是,这些普通方法可以直接调用抽象类中定义的抽象方法,而具体的抽象方法是经过子类覆写的	*/
	//经过子类覆写的抽象方法的具体内容
	public void love() {
		System.out.println("问世间情为何物,直教人生死相许");
		System.out.println("我爱谁,谁爱我,我还能爱谁");
		System.out.println("誓要出书,哪怕自费,字数最起码几十万,近百万");
	}
	
}

彦舜原创,首发

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章