重新理解面向对象

对面向对象的理解以java为例子

1首先什么是面向对象

首先先看看什么是面向过程,面向过程也就是一步步执行操作,具体到每一步,比如说我们人去上厕所

  1. 站起来
  2. 去厕所
  3. 脱掉裤子
  4. ····

具体就是这样而面向对象是把上厕所封装成一个方法,人直接调用上厕所,不需要关心里面的具体步骤!

2、简单来说 面向对象就是 类 和对象

其实语言的发展和生物进化很相似,物以类聚!

那么是先有类还是先有对象呢?当然是先有对象,对象抽取共有的特征形成类!

3、面向对象的本质

熟记一句话:当面向对象不理解时就想想其本质以类的防止组织代码,以对象的方式封装数据

4、面向对象的特性

  • 抽象,其实就是抽像,把相似的属性抽取出来!

  • 封装

    扫描二维码关注公众号,回复: 10753567 查看本文章

把一个类封装起来,只能我自己改变,比如说生产手机,肯定有手机这个类(其实就是相当于一个模板),那我只能通过手机本省改变自己的型号,不能让其他的东西改变自己!

  • 继承

子类公共代码抽取形成父类,子类继承父类所有东西!

  • 多态

比如说 猫猫 和 狗狗 继承了动物这个类,而动物都有唱歌这个方法,而猫就是喵喵的唱,狗则是旺旺的唱,有点像生物的多样性!

5、多态的理解

多态的精华:多态多态就是多种状态,就是父类引用可以指向子类对象,在通过重写方法,实现传不同的子类对象调用不同的方法!

其实和类型转换中的差不多,大的只能强制转化成小的,小的隐藏转化成大的

int a = 2.12; //报错 --》int a = (double)2.12  
double b = 2;  int a = 'a';//正确
  • 注意

Animal animal1 = new Dog(); animal1不能调用子类特有的方法,只能调用自己存在的方法,但是这个方法可以本子类重写覆盖!,这就是下面的代码输出的原因

  public static void main(String[] args) {
        Dog dog1 = new Dog();
        //主要看引用类型是什么,引用类型只能调用自己存在的方法,
        //如果被重写则调用子类的,这就是多态的精华(父类引用可以实例子类对象)
        Animal animal = new Animal();
        Animal animal1 = new Dog();
        Cat animal2 = new Cat();
        sing(animal);       //输出小动物在歌唱!
        sing(animal1);      //输出旺旺旺的唱歌!
        sing(animal2);      //输出喵喵喵的歌唱!
    }
    public static void sing(Animal animal) {
        animal.sing();
    }

猜你喜欢

转载自www.cnblogs.com/bingstudy/p/12690813.html