package com.it.abstractClass;
//抽象类
public abstract class Animal {
// 抽象方法
public abstract void shout();
public void sleep() {
System.out.println("Animal.sleep");
}
public static void main(String[] args) {
Dog d = new Dog();
d.shout();
// Animal a = new Animal();//抽象类不能被new
}
}
class Dog extends Animal {
@Override
public void shout() {
System.out.println("Dog.shout");
}
}
class Cat extends Animal {
@Override
public void shout() {
System.out.println("Cat.shout");
}
}
package com.it.abstractClass;
//模板方法模式(抽象类的应用)
public abstract class DBOperator {
// 1、建立连接 2、打开数据库 3、使用数据库 4、关闭连接
public abstract void connection();
public void open() {
System.out.println("DBOperator.open");
}
public void use() {
System.out.println("DBOperator.use");
}
public void close() {
System.out.println("DBOperator.close");
}
public void process() {
connection();
open();
use();
close();
}
public static void main(String[] args) {
// new MysqlOperator().process();
new OracleOperator().process();
}
}
class MysqlOperator extends DBOperator {
@Override
public void connection() {
System.out.println("MysqlOperator.connection");
}
}
class OracleOperator extends DBOperator {
@Override
public void connection() {
System.out.println("OracleOperator.connection");
}
}