Java语言面向对象总结(补充)

来源:互联网 发布:实体店照片ps源码 编辑:程序博客网 时间:2024/04/28 10:36

<span style="font-size:32px;"></span>
封装,继承、多态


一、封装

      是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。

好处:
①将变化隔离。
②便于使用。
③提高重用性。
④提高安全性。
封装原则:
①将不需要对外提供的内容都隐藏起来。

②把属性都隐藏,提供公共方法对其访问。

二、继承

通过 extends 关键字让类与类之间产生继承关系。
多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。
多个类可以称为子类,单独这个类称为父类或者超类。
注意:
①子类可以直接访问父类中的非私有的属性和行为。
②子类无法继承父类中私有的内容。
③父类怎么来的?共性不断向上抽取而来的。

三、多态
某一类事物的多种存在形态。
例:动物中猫,狗。
猫这个对象对应的类型是猫类型:猫 x = new 猫();
同时猫也是动物中的一种,也可以把猫称为动物:动物  y = new 猫();
动物是猫和狗具体事物中抽取出来的父类型。
父类型引用指向了子类对象。
多态性简单说就是一个对象对应着不同类型。

体现:
父类或者接口的引用指向或者接收自己的子类对象。
作用:
多态的存在提高了程序的扩展性和后期可维护性。
前提:
①需要存在继承或者实现关系。
②需要有覆盖操作。
好处:
提高了代码的扩展性,前期定义的代码可以使用后期的内容。
弊端:
前期定义的内容不能使用(调用)后期子类的特有内容。



java代码示例:

//定义一个人父类  class Person  {      //名字和年龄是人的共有属性      String name;      int age;            //在构造函数中对名字和年龄进行初始化      Person(String name,int age)      {          this.name=name;          this.age=age;          System.out.println(name+"  "+age);      }      //人都具有睡觉的功能      void sleep()      {          System.out.println("sleep");      }  }  //定义一个学生,继承人,作为子类  class Student extends Person  {      Student(String name,int age)      {          super(name,age);    //super关键字表示父类,因为姓名和年龄在父类中进行了初始化动作,在这里可以直接调用      }      //学生具有特有的功能,学习      void study()      {          System.out.println("study");      }    }    class Demo  {      public static void main(String[] args)      {          Student s=new Student("zhangsan",20);          System.out.println(s.name="wangwu");          s.sleep();          s.study();      }  } 


0 0