

oo原则:封装变化、多用组合,少用继承、针对接口编程,不针对实现编程。7、抽象,多态,继承,面向接口编程的设计原则封装:封装特性是由类来体现的,我们将现实生活中的一类实体定义成类,其中包括属性和行为(在java中就是方法),在行为中实现一定的功能,也可操作属性,这是面向对象的封装特性。lsp里氏替换原则子(继承)类能在程序中代替父类(c#,而对于包外是不造成影响,c#为面向接口编程)。

out。println(" 沉默 ,我不会想鸭子一样叫 "); } } 4 定义 FlyBehavior 接口public interface FlyBehavior //接口类型{ public void fly(); } 5 定义 FlyWithWings 类public class FlyWithWings implements FlyBehavior{ public void fly() //实现接口中的 fly() 方法{ System。out。println(" 飞起来了 ,我会飞 "); } } 6 定义 FlyNoWay 类public class FlyNoWay implements FlyBehavior{ public void fly() //实现接口中的 fly() 方法{ System。out。println(" 我不会飞 ,呜呜呜 !!"); } } 7 定义 抽象类 Duck 类public abstract class Duck { FlyBehavior flyBehavior ; //接口QuackBehavior quackBehavior ; //接口public Duck() { } public abstract void display(); //抽象类public void performFly() { flyBehavior。

fly(); //委托给行为类} public void performQuack() { quackBehavior。quack(); //委托给行为类} } 8 定义 MallardDuck 类public class MallardDuck extends Duck { public MallardDuck () //构造函数 ,实现飞行和鸭叫行为{ flyBehavior = new FlyWithWings(); //使用多态 , quackBehavior = new Quack(); // 使用多态 , } public void display() //显示消息{ System。out。println(" 我是绿头鸭 ,我是绿头鸭 "); } public void eat() //觅食{ System。out。println(" 我开始吃饭了 "); } } 9 定义 MiniDuckSimulator 类 ,含 main(String[] args) 入口函数public class MiniDuckSimulator { public static void main(String[] args) { Duck duckOne = new MallardDuck(); //使用多态duckOne。

performFly(); duckOne。performQuack(); duckOne。面向接口编程display(); //duckOne。面向接口编程eat(); //此语句不能通过编译if(duckOne instanceof MallardDuck) { MallardDuck mallardDuck = (MallardDuck) duckOne; //强制类型转换 ,将父类型转换位子类型System。out。println(""); mallardDuck。display(); mallardDuck。eat(); } } }
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-96578-1.html
很长时间了