继承和初始多态

继承

1.为什么要是用继承?

因为在一些类中种有一些相同(name 姓名、age年龄、id工号)的属性,他们的代码意思也是相同的,如果要在加一些扩展类的话那么也会有相同的属性这就造就了代码的冗余,这样的会大量的浪费空间,所以在开发中是很不好的,为了避免数据冗余我门就使用继承

2.继承的概念:

1.1个子类只允许继承一个父类

2.修饰不继承的类叫做密封类使用特殊的关键字sealed

3.假如PE(经理类)和SE(编程师类) 都继承Employee(员工类),那么被继承的类我们称之为父类,而继承其他类的称之为子类后者派生类。  这里面PE和SE都是子类,而Employee是他们两个的父类

3.base关键字

1.  base关键字它表示父类,使用它可以使用父类的成员,如:方法、属性

2.  base关键字也可以在子类中使用,使用之后可以调用父类的属性

3.2  base使用父类用法

  3.2.1  base.属性名

3.2.2 base.方法名

  3.2.3  调用父类构造 base()

4.有三种父类,子类不可以调用

1.父类的私有方法

2.使用final修饰过得方法

3.构造函数

5.C#  protected修饰符

访问修饰符  类内部  子类  其他类

public    可用   可用    可用

private    可用   不可用   不可用

protected      可用   可用    不可用

5.1Java  protected修饰符

访问修饰符  类内部  子类  其他类

public    可用   可用    可用

private    可用   可用   不可用

protected      可用   可用    不可用

6.子类构造函数

1.隐式构造函数

  当父类和子类都有无参构造时,没有用base关键字确认要调用那个构造函数时,会自动先调用父类的构造函数,之后在调用正在使用的子类的构造函数

2.显示构造函数

  想使用父类的构造函数,只要使用:base(参数列表),就可以指定该子类要调用的构造函数了

3.无参的构造函数,调用父类的带参构造函数时,要给参数赋值

时间: 2024-12-11 16:46:51

继承和初始多态的相关文章

java中静态属性和和静态方法的继承问题 以及多态的实质

首先结论是:java中静态属性和和静态方法可以被继承,但是没有被重写(overwrite)而是被隐藏. 静态方法和属性是属于类的,调用的时候直接通过类名.方法名完成的,不需继承机制就可以调用如果子类里面定义了静态方法和属性,那么这时候父类的静态方法 或属性称之为“隐藏”,你如果想要调用父类的静态方法和属性,直接通过父类名.方法名或变量名完成,至于是否继承一说,子类是有继承静态方法和属性,但是 跟实例方法和属性不太一样,存在“隐藏”的这种情况. 多态之所以能够实现是依赖于 继承 接口和 重写 .重

面向对象 【封装】【继承】【多态】

创建一个新项目 using System;                                     --using System.Collections.Generic;        .using System.Linq;                                .          -- 引用的命名空间using System.Text;                             -- namespace ConsoleApplicatio

深究继承示例(多态,继承,构造函数)

关于继承,为什么一直说在含有构造函数的继承中,父类中一定要有不含参数的构造函数才可以. 首先说明默认值的一个知识点:在定义全局变量的时候,即使不给变量赋值,变量也是有值的,比如整形变量的默认值是0 package day07; public class Trys { private static int p ; public static void main(String[] args) { System.out.println(p); } }0 *但是局部变量就必须赋值,不赋值是没法输出的.

[Objective-C] 004_继承封装与多态

继承 面向对象编程 (OOP) 语言的一个主要功能就是"继承".继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展.通过继承创建的新类称为"子类"或"派生类",被继承的类称为"基类"."父类"或"超类".继承的过程,就是从一般到特殊的过程.在考虑使用继承时,有一点需要注意,那就是两个类之间的关系应该是"属于"关系.例如

python-继承以及继承问题和多态

继承# 面向对象的三大特性之一:继承# 继承:至少有两个类:什么是什么的关系,为了避免几个类之间有相同的代码# 父类:Animal# 子类:Dog Person# 动物 示例 # python中有两种类:经典类和新式类# python3中是只有新式类---都默认继承object,class Animal(object) == class Animal:# python2经典类和新式类并存# class Animal: -->是经典类# class Animal(object):--->新式类

第51课 继承对象模型分析——多态的本质分析

多态的本质分析 用C写面向对象,用C实现多态 #ifndef _51_2_H_ #define _51_2_H_ typedef void Demo; typedef void Derived; Demo* Demo_Create(int i, int j); int Demo_GetI(Demo* pThis); int Demo_GetJ(Demo* pThis); int Demo_Add(Demo* pThis, int value); void Demo_Free(Demo* pThi

继承--方法覆盖--多态

继承extends java只支持单继承,但是可以间接继承别的类,默认继承Object 继承的作用:代码重用,重要的作用是:方法的覆盖override和多态机制. 多态的前提是继承 向上转型:等号右边是子类 左边是父类 向下转型:等号右边是父类 左边是子类 向上转型:父类引用指向了(等号左边)子类的内存地址 向下转型:强制类型转换所以需要加强制类型转换符 向下转型存在ClassCastException类转换异常,所以需要加instanceof 判断一下类型: Animal a3=new Bir

多继承续篇与多态

回顾: 多继承:可以继承多个父类 优点:子类可以同时遗传多个父类的属性,最大限度地重用代码 缺点: 1.违背人的思维习惯:继承表达的是一种什么"是"什么的关系 2.代码可读性会变差 3.不建议使用多继承,有可能会引发可恶的菱形问题,扩展性变差, 如果真的涉及到一个子类不可避免地要重用多个父类的属性,应该使用Mixins 多继承的正确打开方式:mixins机制mixins机制核心:就是在多继承背景下尽可能地提升多继承的可读性ps:让多继承满足人的思维习惯表达什么"是"

python基础之继承原理,多态与封装

1.什么是继承? 继承是一种创建新的类的方式.class A: passclass B: pass2.如何继承---->如何寻找继承关系 现实生活中找继承关系是自下而上,在程序中写是自上而下继承是一种"是"的关系:人类.猪类.狗类都是继承动物类,因为他们都是动物 3.为什么要用继承?解决代码重用问题?解决的是:什么是什么的问题-->继承 4.派生:子类继承了父类的属性,然后衍生(或派生)出自己新的属性 如果子类衍生出的新的属性与父类的某个属性名字相同 那么再调用子类的这个属