zoukankan      html  css  js  c++  java
  • Day06_java对象上

    Day06_java对象上

    面向对象编程(OOP)

    面向对象编程的本质:以类的形式组织代码,以对象的组织(封装)数据。

    IDEA添加out目录

    Project structure—>Modules—>Add content root—>项目所在文件夹—>out。

    构造器

    规则

    1. 必须和类的名字相同。
    2. 必须没有返回类型,也不能写void。

    作用

    1. 使用new关键字,本质是在调用构造器。
    2. 用来初始化值。

    注意点

    一旦定义了有参构造,如果想使用无参构造,必须定义无参构造。

    继承

    • 继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模。

    • java中只有单继承,没有多继承。

    继承注意点

    1. 子类默认调用父类的无参构造。
    2. 父类如果有有参构造,子类可通过调用父类的有参构造继承父类,如有子类需要调用父类的无参构造,父类必须定义无参构造。

    super注意点

    1. super()调用父类的构造方法,必须在构造方法的第一个。即子类构造器的第一句是super();
    2. super必须只能出现在子类的方法或者构造方法中。
    3. super和this不能同时调用构造方法。即不能同时出现在子类构造器中。

    VS this

    代表的对象不同:

    this:对象本身。

    super:父类对象的应用。

    前提:

    this:没有继承也可以使用。

    super:只能在继承条件下才能使用。

    构造方法:

    this:本类的构造。

    super:父类的构造。

    #重写

    需要有继承关系,子类重写父类的方法!

    1. 方法名必须相同
    2. 参数列表必须相同
    3. 修饰符:范围可以扩大但不能缩小,public>protected>default>private.
    4. 抛出的异常:范围,可以缩小,但不能扩大

    重写,子类的方法和父类必须要一致,方法体不同。

    为什么需要重写:

    1. 父类的功能,子类不一定需要,或者不一定满足。

    静态方法:方法调用只和对象的类型的有关,例:

    //A是B的子类,test()是静态方法
    B b = new A();
    b.test();
    

    此时调用的是类B内的test()方法。

    非静态:此时将方法重写,例:

    //A是B的子类,test()是非静态方法
    B b = new A();
    b.test();
    

    此时父类B中的test()方法已被A类重写。

    故方法重写只与非静态方法有关。

    #多态

    • 同一方法可以根据发送对象的不同而采用多种不同的行为方式。
    • 一个对象的实际类型是确定的,但可以指向对象的的引用的类型有很多(父类,有关系的类)

    例如:

    //Person是父类,Student 是子类
    //new Student(); new Person();的实际类型是确定的
    //Person s2=new Student(); s2的类型是不确定的
    //对象能调用那些方法,主要看对象左边的类型,和右边关系不大
    //如下,Student类能调用的方法是自己的或者继承父类的
    Student s1 =new Student();
    //Person 父类型,可以指向子类,但是不能调用子类独有的方法
    Person s2 =new Student();
    

    存在条件

    • 有继承关系
    • 子类重写父类方法
    • 父类引用指向子类对象

    多态注意事项

    1. 多态是方法的多态,属性没有多态
    2. 父类和子类,有联系。 经常爆出类型转换异常:ClassCastException

    不能重写的方法:

    1. static 方法,属于类,不属于实例;
    2. final 常量;
    3. private方法;
  • 相关阅读:
    Spring Cloud Bus 消息总线介绍
    工商银行分布式服务 C10K 场景解决方案
    关于写好文章的3个心法和5点技巧
    混合云K8s容器化应用弹性伸缩实战
    云原生下的灰度体系建设
    被解救的代码
    【2020-10-22】我是否一个真正靠谱的人
    【2020-10-21】以谦虚与忍耐去期待豁然与贯通
    【2020-10-20】压力也是一种感受,用心体会
    【2020-10-19】不断试错的过程
  • 原文地址:https://www.cnblogs.com/gaoyao/p/13341933.html
Copyright © 2011-2022 走看看