类和对象之间的关系?封装继承多态?

本文介绍了面向对象编程的基本概念,包括类、对象、封装、继承、多态等,并详细解释了这些概念的应用及特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

类:具有相同属性和行为的一类物质集合
对象:类的实例,对象具有类所描述的所有属性以及方法

在面向对象的编程思想中把属性和行为分别称为对象的属性和方法,是构成对象的两个主要因素;在编程中,对象的属性被存储在一些变量里;对象的行为则通过定义方法来实现。类与对象之间的关系其实也是一种抽象的体现,类是一种抽象的概念,而对象是具体的。就比如说女朋友是一类人,而你的女朋友是具体的一个人^_^

面向对象程序设计的特性:

封装:

  • 利用类将数据和基于数据的操作封装在一起
  • 作用: ⑴保证了数据的安全性⑵提供了外部访问的接口⑶类内部的修改不会影响到其他类

继承:

  • 存在于面向对象程序的两个类之间的一种关系
  • 被继承的类被称为父类或基类,继承了父类属性的类成为子类或派生类
  • 子类拥有父类的所有数据和操作
  • 作用: 拓展,派生出新的类,重用原代码,传递性,单根性
  • 继承关系中构造方法的使用:类可以在自己的构造方法中使用关键字super来调用父类的构造方法,但super必须是子类构造方法中的第一个可执行语句
  • 在创建子类对象时,首先自动执行父类的无参构造方法,然后再执行自己自定义的构造方法;

多态:

  • 方法的重载,参数多态,一个类中的多个方法:方法名相同,参数列表不同/个数不同/返回值不同
  • 方法的重写覆盖:对于父类中的某个方法,在子类重新定义一个相同形态的方法
    方法重写注意:
    1. 不能修改返回值类型,只有返回类型为引用类型时,允许子类方法的返回类型的子类型.
    2. 不能被重写方法限制有更严格的限制
    3. 参数列表要一致
    4. 要有相同的返回类型
    5. 重写方法不能抛出新的异常
    6. 不能重写被final标识的方法
    7. 如果一个方法不能被继承,则不能重写
      如果想与父类方法名字相同,而又不重写,可以使用new关键字,父类的方法不使用virtual/abstract定义

抽象:

  • 体现在类的层次设计中。高层类是底层类的抽象表述
  • 体现在类与对象的关系上。类是一个抽象的概念,而对象是具体的。
  • 注意:Java中有一个类Object,它处于类层次结构的顶端,该类中定义了所有类的公共属性和方法。

创建并使用对象:类名 对象名=new 类名();

School school=new School();

构造方法:方法名和类名相同,没有返回值,主要实现对象的次数初始化操作;有带参构造方法时,必须有无参构造方法
抽象类public abstract class Say抽象类不能被实例化,抽象类不能是密封或者静态的,不能使用sealed/static

里氏替换原则:
①在父类中使用virtual

public virtual void sayHello(String name);

//访问修饰符 virtual 返回值类型 方法名(参数列表)


②在子类中使用override

public  override 返回值类型 方法名 参数列表

③使用子类(子类替换父类,父类类型作为参数)
④运行时程序会按照具体子类类型,调用不同子类方法

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值