第一步我们新建一个接口A类
package InterfaceText; public interface A { //定义一个接口 public void g (); //定义接口方法 }
第二步:新建一个B类,这个B类实现A这个接口 并抽象化
package InterfaceText;
public abstract class B implements A{
/*
* zdy()是在B类自定义的一个方法
* 但不要忘记了他还实现了一个接口。
* 当调用这个B类的时候,要实现接口中的类。可以看到下面的第三步。他继承了B类。
*/
public void zdy() {
System.out.println("我是一个教授,我白天教书");
}
}
第三步:我们新建一个Doctor1这个类并继承B这个类,因为继承B类这个类了,那这个B里面自定义的类属性也继承了,就不用重写了。
package InterfaceText; public class Doctor1 extends B{ public void g() { System.out.println("到了晚上我就睡觉"); } }
第四步:我们在新建一个Doctor2 和第三步一样;
package InterfaceText; public class Doctor2 extends B{ public void g() { System.out.println("到了晚上我就去玩"); } }
第五步:我们新建一个测试类main
package InterfaceText; public class main1 { public static void main(String[] args) { Doctor1 d1 = new Doctor1(); d1.zdy(); d1.g(); System.out.println("--------------------"); Doctor2 d2 = new Doctor2(); d2.zdy(); d2.g(); } }
我们看一下运行结果:
白天都是教书,但晚上就有很多种“态"了。
那这样问题就来了,如果有很多个教授是不是要写很多个Doctor3,4,5,6...个这样的类呢,显然这样不好;
那么我们再改进一下代码;我们不写Doctor这样的类了。我们直接在main这个测试类里写一个方法;
package InterfaceText; public class main1 { public static void main(String[] args) { Doctor1 d1 = new Doctor1(); d1.zdy(); d1.g(); System.out.println("--------------------"); Doctor2 d2 = new Doctor2(); d2.zdy(); d2.g(); System.out.println("--------------"); B B1= new B(){ public void g() { System.out.println("我晚上什么都不干"); } }; B1.zdy(); B1.g(); } }
上面蓝色加粗的代码块里 我们直接调用 B方法就可以了。
这些笔记只是博主的一个课堂的笔记,还是有很多不足,欢迎留言批评指教。。