版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_36027342/article/details/79434558
类:具有相同属性和行为的一类物质集合
对象:类的实例,对象具有类所描述的所有属性以及方法
在面向对象的编程思想中把属性和行为分别称为对象的属性和方法,是构成对象的两个主要因素;在编程中,对象的属性被存储在一些变量里;对象的行为则通过定义方法来实现。
面向对象程序设计的特性:
封装:
- 利用类将数据和基于数据的操作封装在一起
- 作用: ⑴保证了数据的安全性⑵提供了外部访问的接口⑶类内部的修改不会影响到其他类
继承:
- 存在于面向对象程序的两个类之间的一种关系
- 被继承的类被称为父类或基类,继承了父类属性的类成为子类或派生类
- 子类拥有父类的所有数据和操作
- 作用: 拓展,派生出新的类,重用原代码,传递性,单根性
多态:
- 方法的重载,参数多态,一个类中的多个方法,方法名相同,参数列表不同/个数不同/返回值不同
- 方法的重写覆盖,对于父类中的某个方法,在子类重新定义一个相同形态的方法
注意:
- 不能修改返回值类型
- 不能被重写方法限制有更严格的限制
- 参数列表要一致
- 要有相同的返回类型
- 重写方法不能抛出新的异常
- 不能重写被final标识的方法
- 如果一个方法不能被继承,则不能重写
如果想与父类方法名字相同,而又不重写,可以使用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 返回值类型 方法名 参数列表
③使用子类(子类替换父类,父类类型作为参数)
④运行时程序会按照具体子类类型,调用不同子类方法