Java学习高级三
抽象类
模板方法设计模式
// People 模板
public abstract class People {
/**
* 设计模板方法设计模式
*/
public final void write() {
System.out.println("\t\t\t\t\t《我的爸爸》");
System.out.println("\t\t我的爸爸,很牛逼");
//2.模板方法并不清楚正文部分到底应该怎么写,但是他知道子类肯定要写
System.out.println(writeMain());
System.out.println("有这样的爸爸太好了");
}
// 3.设计一个抽象方法写正文,具体的实现交给子类
public abstract String writeMain();
}
// Student
public class Student extends People {
@Override
public String writeMain() {
return "我的爸爸特别牛";
}
}
//Teacher
public class Teacher extends People {
@Override
public String writeMain() {
return "我的爸爸非常棒,他很厉害";
}
}
// 测试类
public class Test {
public static void main(String[] args) {
// 抽象类饿应用场景 经常用来设计模板方法设计模式
//场景:学生和老师都要写一篇作文: 我的爸爸
//第一段一样
//正文自由发挥
//结尾一样
Student s = new Student();
s.write();
Teacher t = new Teacher();
t.write();
}
}
接口
public class Test {
public static void main(String[] args) {
// 接口的好处
Student s = new A();
/*Driver d = new A();
d.drive();*/
/*Singer s1 = new A();
s1.sing();*/
// 接口好处 快速切换司机 B 不行 就 A
Driver d = new B();
d.drive();
}
}
class B implements Driver{
@Override
public void drive() {
System.out.println("drive");
}
}
class A extends Student implements Driver,Singer{
@Override
public void drive() {
System.out.println("drive");
}
@Override
public void sing() {
System.out.println("sing");
}
}
class Student{
}
interface Driver{
void drive();
}
interface Singer{
void sing();
}
原文地址:https://blog.csdn.net/weixin_45730243/article/details/140370054
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!