类和对象之间的关系

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_36027342/article/details/79434558

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

在面向对象的编程思想中把属性和行为分别称为对象的属性和方法,是构成对象的两个主要因素;在编程中,对象的属性被存储在一些变量里;对象的行为则通过定义方法来实现。

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

封装:

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

继承:

  • 存在于面向对象程序的两个类之间的一种关系
  • 被继承的类被称为父类或基类,继承了父类属性的类成为子类或派生类
  • 子类拥有父类的所有数据和操作
  • 作用: 拓展,派生出新的类,重用原代码,传递性,单根性

多态:

  • 方法的重载,参数多态,一个类中的多个方法,方法名相同,参数列表不同/个数不同/返回值不同
  • 方法的重写覆盖,对于父类中的某个方法,在子类重新定义一个相同形态的方法

注意:

  1. 不能修改返回值类型
  2. 不能被重写方法限制有更严格的限制
  3. 参数列表要一致
  4. 要有相同的返回类型
  5. 重写方法不能抛出新的异常
  6. 不能重写被final标识的方法
  7. 如果一个方法不能被继承,则不能重写
    如果想与父类方法名字相同,而又不重写,可以使用new关键字,父类的方法不使用virtual/abstract定义

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

School school=new School();

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

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

public virtual void sayHello(String name);

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


②在子类中使用override

扫描二维码关注公众号,回复: 3311092 查看本文章
public  override 返回值类型 方法名 参数列表

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

猜你喜欢

转载自blog.csdn.net/weixin_36027342/article/details/79434558