首页 > 其他分享 >面向对象

面向对象

时间:2022-12-15 19:00:12浏览次数:46  
标签:调用 面向对象 子类 构造 person student 父类

类和对象

  1. 构造器

  2. 默认构造器和类的名称相同,且没有任何参数和返回值

  3. 调用new方法的本质是调用构造器

  4. 类默认有一个无参构造

  5. 当类中有有参构造时,无参构造必须显式定义

  6. static修饰符

static在对象实例化之前就存在

类的static方法之间可以互相调用

类的static方法可以直接通过类名.方法名调用,无static修饰符的方法只能先实例化对象之后才能调用

  1. 默认初始化

数字:0,0.0

char:u0000

引用:null

boolean: false

封装

  1. 高内聚,低耦合

  2. 属性私有

继承

public class student extends person{
    //student类 继承person类
}
  1. 子类可以继承父类的public方法,private无法被继承

//ctrl+h 查看“族谱”

  1. 所有的类都直接或间接继承自object类

  2. java中类只能有单继承,不能多继承

super关键字

  super();//调用父类无参构造
  1. 子类构造时,会默认先调用父类的无参构造

  2. 调用父类的构造器必须要在子类构造器的第一行

  3. 必须只能出现在子类的方法或者构造方法之中

  4. super和this不能同时调用构造方法

super / this 对比
  1. 代表对象不同:

this:本身调用者这个对象

super:代表父类对象的应用

  1. 前提

this:没有继承也可以使用

super:只能在继承条件才可以使用

  1. 构造方法

    this();//调用本类的构造
    super();//调用父类的构造

方法重写

public class A extends B{

}
  1. 方法名必须相同

  2. 参数列表必须相同

  3. 修饰符:范围可以扩大,但不能缩小

  4. 抛出的异常:范围可以缩小,但不能扩大

  5. static 方法属于类,不属于实例,不能重写

  6. final 常量,不能重写

  7. private 不能重写

多态

  1. 可拓展性

  2. 子类重写了父类的方法,执行子类的方法

  3. 父类只能通过强制转换调用子类单独拥有的方法

  4. 子类能调用的方法是自己的或者继承父类的方法

  5. 父类的引用指向儿子的对象

instance of

//判断一个对象是什么类型
//Object>String
//Object>person>student
//同级才能比较
package object;

public class demo01 {
    public static void main(String[] args) {
        student s1=new student();
        person s2=new student();
        s1.run();
        s2.run();
        Object object=new student();
        System.out.println(object instanceof student);
        System.out.println(object instanceof person);
        System.out.println(object instanceof Object);
        System.out.println(object instanceof String);
        person person=new persaon();
        System.out.println(person instanceof String);//报错
    }
}

//输出结果
/*run by student
run by student
true
true
true
false*/

强制转化

  1. 低类型转高类型不需要强制转换

  2. 高类型转低类型需要强制转换

  3. 父>子

标签:调用,面向对象,子类,构造,person,student,父类
From: https://www.cnblogs.com/hithin/p/16985852.html

相关文章

  • 说说面向对象的故事,主人是人类!(三)
    今天的主角是ref和out这两个参数! #regionrefandoutreferencepublicclassRefOrOut{publicvoidRef(refinta){a=a+1;......
  • 说说面向对象的故事,主人是人类!(二)
    #regionrefandoutreferencepublicclassRefOrOut{publicvoidRef(refinta){a=a+1;}publicvoidOut(out......
  • 今天有点时间,想写一个小说,说说面向对象的故事,主人是人类!(一)
    一,人类的起源,及人类的爬,走,跑是怎么炼成的.///<summary>///一个人///</summary>publicclassPeople{///<summary>///默认构造......
  • 大家一起来学习一下面向对象的三层架构吧!今天我来说说Entity有时也叫MODEL实体层!
    实体层,事实上就是数据库的对象化,把数据表抽象化,目前有很多这方面的工具,我们把这些工具称为ORM工具,即对象关系模型,microsoft在进入3.5时代后引入了LINQ的概念,LINQ的出......
  • 面向对象总结
                        面向对象都有哪些特性以及你对这些特性的理解继承:继承是从已有类得到信息创建新类的过程。提供信息的类被称为父类(超类,基类);得到......
  • python-面向对象
    1.概述1.1面向过程定义:分析出解决问题的步骤,然后逐步实现。例如:婚礼筹办--请柬(选照片、措词、制作)--宴席(场地、找厨师、准备桌椅餐具、计划菜品、购买食材)--仪式(定......
  • 14-咸鱼学Java-面向对象基础:类
    类类就相当于自定义类型,有自己的数据域,有自己的方法。属于一种用户自定义类型。类的目的就是模拟现实中存在的物体,如一个Person类,一个人他有自己的名字,年龄,性别等等,他有自己......
  • 面向对象编程
    面向对象编程Java的核心思想是oop初识面向对象方法的回顾与加深对象的创建分析面向对象的三大特性抽象类和接口内部类及oop实战面向过程&面向对象......
  • Java面向对象2
    封装性    封装就是保护内容,保证某些属性或方法可以不被外部看见,而在内部自己去处理。 classPerson{Stringname;intage;publicvoidtell(){System.out......
  • Java面向对象1
     程序的发展阶段程序的发展经历了两个主要阶段:面向过程、面向对象。对于面向对象与面向过程可以用一个例子解释,如一个木匠要做一个盒子,那么做这个盒子的出发点会有两种......