面向对象(二) 继承和多态

一、继承

继承可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等。

继承可以使得子类别具有父类别的各种属性和方法,而不需要再次编写相同的代码。

//父类
public class Fulei
{
    //成员变量
    private int _Zhi;
    //属性
    public int  Zhi;
    {
         set{_Zhi = value ;}
         get{return _Zhi ;}
    //成员方法
    public int Fangfa()
    {   }
}
//子类
public class Fulei : Zilei
{

}

继承代码形式为 子类名:父类名。

子类继承父类属性时,只能继承父类允许继承的属性和成员方法。如方位修饰符为public的属性。

继承之后,可以直接在子类对象中设置引用父类的属性和成员方法。

子类也可以称为派生类,超类。

每个父类可以有多个子类。

子类也可以作为第三个类的父类,这样第三个类可以同时拥有子类和父类允许继承的属性和成员方法。

二、多态

多态可以从字面意思理解为“多种形态”,继承了一个父类的多个子类会拥有各自不同的成员变量/属性/成员方法,或者对同一个父类变量/属性/成员方法需要有不同的表现形式。

虚方法

虚方法和重写是多个子类引用同一个父类成员方法但需要表现出不同形式时对成员方法进行修改,用关键词virtual和override实现。

//父类
public class Fulei
{
    //成员方法
    public virtual int Fangfa()
    {
    return Zhi;
    }
}
//子类1
public class Fulei : Zilei
{
    public override int Fangfa()
    {
    return base.Fangfa();
    }
}
//子类2
public class Fulei : Zilei
{
    public override int Fangfa()
    {
    return Zhi2;
    }
}

virtual写在父类里方法的访问修饰符后面,将方法设置成虚方法,给子类一个权限,允许其改动方法。

override写在子类的方法里,该方法和从父类继承的方法有相同的方法名,方法内容默认是 return base.方法名();修改时把base.方法名()替换成需要的内容。

时间: 2024-10-09 23:53:46

面向对象(二) 继承和多态的相关文章

javascript面向对象:继承、多态

继承 js中同样可以实现类的继承这一面向对象特性,继承父类中的所有成员(变量和属性),同时可扩展自己的成员,下面介绍几种js中实现继承的方式: 1,对象模仿:通过动态的改变 this 指针的指向,实现对父类成员的重复定义,如下: function ClassA(paramColor) { this.color = paramColor; this.sayColor = function() { alert(this.color); } } function ClassB(paramColor,

面向对象(4)--继承和多态

一.继承 继承的类称为子类,被继承的类称为基类,父类,或超类. 继承的优点: 简化了代码 提高了代码的健壮性 提高了代码的安全性 多态的前提 缺点:耦合与内聚.耦合性越低,内聚性越高,代码越好. 比如,有一个Animal类,有个run方法: In [1]: class Animal: ...: def run(self): ...: print('我正在跑步!!!') ...: 当我们需要创建Dog和Cat类时,可以直接继承Animal: In [3]: class Dog(Animal): .

php 面向对象之继承、多态和静态方法

<?php //继承:子类可以继承父类的一切 //特点:单继承 //父类 class Ren { public $name; public $sex; public $yuyan; function Say() { echo $this->name."正在讲话!"; } } //美国人的子类 class America extends Ren { public $ziben; //子类对父类的方法重写 function Say() { parent::Say(); //调用

Python 面向对象编程——继承和多态

1.1   继承和多态 1.1.1   继承 当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Base class.Super class). >>> class Animal(object): ...    def run(self): ...        print('Animal is running...') #父类 ... >>> class Dog(Ani

python 面向对象四 继承和多态

一.继承 1 class Animal(object): 2 def run(self): 3 print('Animal is running...') 4 5 class Dog(Animal): 6 7 def run(self): 8 print('Dog is running...') 9 10 def eat(self): 11 print('Eating meat...') 12 13 dog = Dog() 14 dog.run() 1 Dog is running... 当子类

面向对象(继承,多态)

二维数组的定义格式:第一种:直接给定了每一个一维数组中数组长度数据类型[][] 数组名称 = new 数据类型[m][n]第二种:给定了多少个一维数组,长度动态给定数据类型[][] 数组名称 = new 数据类型[m][] ;第三种:二维数组中直接给定元素值数据类型[][] 数组名称 = {{元素1,元素2},{元素1,元素2}-} 如何遍历二维数组 int [][] arr = {{11,22},{33,44},{55,66}} ; 外层循环:控制的是二维数组长度,内存循环,一维数组长度 代码

面向对象二 — — 继承、抽象类、接口

一.继承 extends 继承的特点:Java的继承通过extends关键字来实现,实现继承的类被称为子类,被继承的类称为父类 1.参数列表必须完全与被重写的方法相同,否则不能称其为重写而是重载. 2.返回的类型必须一直与被重写的方法的返回类型相同,否则不能称其为重写而是重载. 3.访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private) 4.重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常. 用supe

面向对象(二)——继承、派生、组合以及接口

一.继承与派生 1.1 什么是继承 继承是一种创建新类的方式,在Python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类 Python中类的继承分为:单继承和多继承 class People: # 定义父类 def __init__(self,name,age): self.name=name self.age=age def walk(self): print('%s is walking' %self) class Teacher(People): #

PHP中面向对象的继承和多态基本用法

Extends 继承: 特点:单继承 一个子类只能有一个父类,一个父类可以有多个子类 例子: Class Ren { Public $name; Public $sex; Public $yuyan; Function say() { Echo $this->name.”正在讲话”: } } 美国人的子类: Class amercia extends Ren { Function say() { Parent::say();    调用父类的say()方法 Echo “hello”;    子类

面向对象:继承、多态

1.继承   子类名:父类名 子类可以继承父类所有的公共方法和属性 一个父类可以有无数个子类.后辈类 一个子类只能有一个亲爹 父类.基类子类.派生类.超类        --不同种说法 2.多态 virtual   虚方法 override  重写 overload 重载 用法: class grandfa { public string p() { return "奶奶"; } } -- class father:grandfa { public virtual string peo