本帖最后由 keys 于 2015-3-28 00:41 编辑
五、多态的主板示例(多态与接口的结合,对应着视频看,好好理解)
(1)/*
需求:
电脑运行实例
电脑运行基于主板
*/
/*class MainBoard{
public void run(){
System.out.println("mainboard run");
}
public void useNetCard(NewCard c ){
c.open();
c.close();
}
}
class NewCard{
public void open(){
System.out.println("NewCard open");
}
public void close(){
System.out.println("NewCard close");
}
}*/
interface PCI{
public void open();
public void close();
}
class MainBoard{
public void run(){
System.out.println("mainboard run");
}
public void usePCI(PCI p){ //PCI P = new NetCard();
if(p!=null){
p.open();
p.close();
}
}
}
class NewCard implements PCI{
public void open(){
System.out.println("NewCard open");
}
public void close(){
System.out.println("NewCard close");
}
}
class SoundCard implements PCI{
@Override
public void open() {
System.out.println("SoundCard open");
}
@Override
public void close() {
System.out.println("SoundCard close");
}
}
class DuoTaiDemo{
public static void main(String[] args) {
MainBoard mb = new MainBoard();
mb.run();
mb.usePCI(null);
mb.usePCI(new NewCard());
mb.usePCI(new SoundCard());
}
}
(2)需求:数据库操作
/**
需求:数据库的操作
数据是:用户信息。
1.连接数据库。 JDBC Hibernate
2.操作数据库。
c create r read u update d delete
3.关闭数据库连接。
**/
interface UserInfoDao{
public void add();
public void delete();
}
class User{
public void use(){
System.out.println("use");
}
public void useDao(UserInfoDao dao){
if(dao !=null){
dao.add();
dao.delete();
}
}
}
class UserInfoByJDBC implements UserInfoDao{
public void add(){
//1.连接数据库
//2.使用sql添加语句添加数据。
//3.关闭连接
}
public void delete(){
//1.连接数据库
//2.使用sql删除语句添加数据。
//3.关闭连接
}
}
class UserInfoByHibernate implements UserInfoDao{
public void add(){
//1.Hibernate连接数据库
//2.使用sql添加语句添加数据。
//3.关闭连接
}
public void delete(){
//1.Hibernate连接数据库
//2.使用sql删除语句添加数据。
//3.关闭连接
}
}
class DBOperate{
public static void main(String[] args) {
//UserInfoByHibernate uj = new UserInfoByHibernate();
User use = new User();
use.use();
use.useDao(new UserInfoByHibernate());
use.useDao(new UserInfoByJDBC());
}
}
/**
需求:数据库的操作
数据是:用户信息。
1.连接数据库。 JDBC Hibernate
2.操作数据库。
c create r read u update d delete
3.关闭数据库连接。
**/
interface UserInfoDao{
public void add();
public void delete();
}
class User{
public void use(){
System.out.println("use");
}
public void useDao(UserInfoDao dao){
if(dao !=null){
dao.add();
dao.delete();
}
}
}
class UserInfoByJDBC implements UserInfoDao{
public void add(){
//1.连接数据库
//2.使用sql添加语句添加数据。
//3.关闭连接
}
public void delete(){
//1.连接数据库
//2.使用sql删除语句添加数据。
//3.关闭连接
}
}
class UserInfoByHibernate implements UserInfoDao{
public void add(){
//1.Hibernate连接数据库
//2.使用sql添加语句添加数据。
//3.关闭连接
}
public void delete(){
//1.Hibernate连接数据库
//2.使用sql删除语句添加数据。
//3.关闭连接
}
}
class DBOperate{
public static void main(String[] args) {
//UserInfoByHibernate uj = new UserInfoByHibernate();
User use = new User();
use.use();
use.useDao(new UserInfoByHibernate());
use.useDao(new UserInfoByJDBC());
}
}
|
|