在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
隐藏方法:我们不能删除基类中的任何成员,但是可以用与基类成员名称相同的成员来屏蔽基类成员 屏蔽数据成员:在派生类中声明名称和类型相同的成员 屏蔽函数成员:在派生类中声明新的带有相同函数签名的成员 让编译器知道:可以添加new关键字,否则会警告 虚方法与多态: 一个设计原则:面向对象编程中,都要遵循一个原则:依赖倒置原则。 换句话说就是程序设计要依赖抽象类(Pet),而不依赖于具体类。 基类的引用:派生类的对象包含基类和派生类部分。所以我们可以通过一个基类类型的应用指向派生类。通过指向派生类的基类引用。我们仅仅能访问派生类中的基类部分。 调用隐藏类型的新的方法,还是原来基类的方法取决于我通过什么类型的引用。 统一提高效率:有时我们需要一个容器(比如数组)保存所有的基类(Pet),基类描述了共同的属性和行为。 比如宠物需要年龄,名字,都可以发出声音,进食。 这样方便管理,容易扩展。 前提是基类的引用可以指向派生类。 子类具有差异: 但是,基类不能涵盖所有情况和变化。统一的行为方法,往往在基类和派生类中有所区别。虽然所有的宠物都能发出声音,但是发出的声音各不相同,有些发不出声音。 虚方法:声明为Virtual的方法就是虚方法。基类的虚方法可以再派生类中用Override进行重写 多态:通过指向派生类的基类引用,调用虚方法,会根据引用所指的派生类的实际类型,调用派生类的同名重写函数,就是多态。 我们可以正常调用或者用数组方法 构造函数: 在派生类对象中,有一部分是基类部分,在执行派生类的构造函数中,在执行派生类构造函数之前,将会隐式或者显示的调用基类调用函数。 抽象方法和抽象类: 抽象方法: 声明方法是abstract是不能有实体的,不能有实际的函数体,只可以在派生类中进行重写(override) 但是用虚方法,可以有函数体 基类有abstract方法,必须重写 abstract比虚更虚,虚无缥缈,没有函数体必须重写 没有函数体,你这个方法并不存在 如果一个类含有抽象方法,这个类就是抽象类 抽象就像一块生牛排 适合各种做法 ,能做出不同味道,但牛排不能什么都不做生着吃 如果一个类有抽象方法,必须声明抽象类 如果只有普通方法,可以声明也可以不声明 派生出来的必须override否则还是抽象类 密闭类: 这里为了防止,狗再不汪汪叫,就禁止派生 接口: 一般用I开头就是接口的首字母 它是一种应用类型,而不是值类型 结构和类: 类的静态成员: 因为你的实例可能压根没被new出来 扩展就是喂食的方法,把Dog对象传进来调用静态类的静态方法 |
请发表评论