面向对象的三个特点

来源:互联网 发布:linux判断文本内容换行 编辑:程序博客网 时间:2024/05/21 15:06
面向对象有三个特点:封装、继承、多态。
封装就是把数据封装起来,只留出共有的接口来访问这些私有的数据。我用c++来演示下

Class Student{Private:string name;Int age;Public :Student(string s,int a);Int getAge();Void setAge(int a);}Int main{ Student s1("Mary",20);Cout<<s1.getAge()<<end1;}


继承就是子类可以拥有父类的静态属性和动态方法,这样就可以不用再写这些属性和方法了,使得代码复用,减少了工作量。接下来我用Java来演示。
Abstract class Instrument  //因为不需要有实例,所以把它定义为抽象类{ Double price;//价格属性 String brand;//品牌属性 Public void play();//演奏方法 Public void tune();//调音方法}Class XIaoTiQin extends Instrument //小提琴继承了父类{//属性就不用再写了,直接重新方法,就可以覆盖父类的方法。 public void play(){ system.out.println("XiaoTiQin plays"); }Public void tune(){ system.out.println(XiaoTiQin tune);}}Class GangQin extends Instrument //钢琴继承了父类{ //属性就不用再写了,直接重新方法,就可以覆盖父类的方法。  public void play(){ system.out.println("GangQin plays"); }Public void tune(){ system.out.println(GangQin tune);}}public static void main(int ,string []){XiaoTiQin s1=new XiaoTiQin();GangQin s2=new GangQin();S1.tune();S2.tune();S1.play();S2.play();}


多态就是一个消息或指令,不同的对象有不同的表现形式。这就是多态。还是用Java来举例。

abstract Class Instrument  //不需要有实例化,所以加抽象{Double price;String brand;Public void play();Public void tune(); }Public Class Test{Public void yanzou(Instrument x){x.play;}Class XIaoTiQin extends Instrument{ public void play(){ system.out.println("XiaoTiQin plays"); }Public void tune(){ system.out.println(XiaoTiQin tune);}}Class GangQin extends Instrument{   public void play(){ system.out.println("GangQin plays"); }Public void tune(){ system.out.println(GangQin tune);}}public static void main(int ,string []){ //多态实现Instrument ss1=new XiaoTiQin();Instrument ss2=new GangiQin();Test s=new Test();While (!乐谱结束){Instrument a=读取下一个演奏对象;  a.play(); //根据乐普是否结束,来自动演奏下一个乐器。}} 




原创粉丝点击