C#类的运用,继承,多态,方法重写

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ObjTest
{
class Program
{
static void Main(string[] args)
{
//car a = new car();
//a.name = "bmw";
//a.run();
//car b = new car();
//b.name = "lbjn";
//b.run();

// 子类创建对象并初始化

Bmw b = new Bmw();
b.name = "bmw";
b.you = 100;
b.lun = 4;
b.run();

// 子类创建对象并初始化

Dcar d = new Dcar();
d.name = "电车";
d.dian = 50;
d.lun = 6;
d.run();

//buyCar(b);
//buyCar(d);

Car c = new Car();
c.name = "本田";
buyCar(c);

Console.ReadKey();
}

public static void buyCar(Car a) //写一个静态父类方法(由类调用),父类的指向,指向子类的对象;(多态的体现),参数可以是基类Car的不同对象;
{
Console.Write("我要买" + a .name+ "\n");
}

//定义一个父类(基类)Car;
public class Car {

//定义父类的name,lun属性;

public string name;  
public int lun;

//定义父类的方法;
public void run (){    
Console.Write(name+" run"+"\n");
}
}

//子类继承父类,并子类拥有自己的属性和方法

public class Bmw :Car{

//子类的属性

public int you;

//子类的拥有父类方法同名方法(重写父类的方法)

public void run()
{

//父类调用子类的方法用base
base.run();
Console.Write(lun+"个轮"+you + "升油" + name + " run" + "\n");
}
}

//定义另一个子类电车
public class Dcar : Car
{
public int dian;

public void run()
{
//base.run();
Console.Write(lun + "个轮" + dian + "度电" + name + " run" + "\n");
}
}

}
}

时间: 2024-10-23 08:09:02

C#类的运用,继承,多态,方法重写的相关文章

php类和命名空间介绍,成员方法和类方法,类的继承与方法重写

1. 类和命名空间的介绍 foo.php: <?php // require_once 'lib.php'; // $h = new Hello(); //类的实例 // $h->sayHello(); //实例访问类的方法s// $d = new Desktop();// $d-> work(); // require_once 'Apple/foo.php';  //foo.php的文件位置 // $h = new \jkxy\Hello(); //foo.php的命名空间,在Hel

Python类的继承和方法重写总结

我们都知道类可以继承,通过继承可以实现代码的复用,使代码看起来更加简洁 比如: Class B(A): Pass 定义了一个名为B的类,它继承于A,我们把B叫做A的子类,A叫做B的超类(父类). 方法重写 当子类定义了一个和超类相同名字的方法时,那么子类的这个方法将覆盖超类相同的方法(或称为重写) 先借用两个例子: >>> class Bird: ...     def __init__(self): ...         self.hungry = True ...     def 

04 Python的继承、方法重写、super()类

继承 A类继承B类,A即可获得B类的全部公共属性和方法.格式如:class A(B): class Animal: def sleep(self): print("zZZ...") def eat(self): print("yamiyami...") def run(self): print("huchihuchi...") class Dog(Animal): #Dog类拥有sleep,eat,run,bark四个方法 def bark(se

【java】Java的继承,方法重写,访问权限

继承 **首先面向对象的三大特性: 1. 封装 2. 继承 3. 多态** 语法 class Subclass extends Superclass{ } 作用 继承的出现提高了代码的复用性. 继承的出现让类与类之间产生了关系,提供了多态的前提. 不要仅为了获取其他类中某个功能而去继承 例子 class Person { String name; int age; } /*继承与Person类*/ class Student extends Person { int weight; } Stud

第七天 继承之方法重写

方法重写又称方法覆盖java中子类可以继承父类中的方法,而不需要重新编写相同的方法.但有时子类并不想原封不动的继承父类的方法而是想做一定的修改,着时候就需要采用方法的重写 方法覆盖的注意事项: 1权限:子类的的权限(访问修饰符)一定要不小于被重新的方法的权限(访问修饰符) 2方法定义:方法名和参数列表必须一样 3返回值:基本数据类型:子类和父类的必须一置 引用数据类型:子类可以与父类相同也可以是父类的子类 4抛出异常:子类抛出的异常不能超过父亲抛出的异常(子类的异常不能大于父类的异常) 5不能被

继承与方法重写

public class A { public virtual void Fun1(int i) { Console.WriteLine(i); } public void Fun2(A a) { a.Fun1(1); Fun1(5); } } public class B : A { public override void Fun1(int i) { base.Fun1(i + 1); } } class Program { public static void Main() { B b =

22.1 Extends 继承的 方法重写、@Override的使用、

/* * 继承中成员方法的特点 * 子类中没有这个方法,调用父类的 * 子类中重写了这个方法,调用子类的 * 方法的重写:在子父类当中,子类的方法和父类的完全一样,子类重写了父类的方法(覆盖),当子类重写了父类的方法之后,使用子类对象调用的就是子类的方法 方法的重载:在一个类中,有多个重名的方法,但是其参数不一样(参数的个数,参数的类型,参数的顺序),和返回值无关 * 方法重写的应用场景:当父类的方法不能完全满足子类使用,这个时候子类重写父类的方法, * 并可以在方法中使用关键字super调用父

java类的封装 继承 多态

1.猜数字小游戏 package cn.jiemoxiaodi_02; import java.util.Scanner; /** * 猜数字小游戏 * * @author huli * */ public class GuessNumberDemo { public static void main(String[] args) { int number = (int) (Math.random() * 100) + 1; while (true) { System.out.println("

Go中匿名字段的方法继承与方法重写

// code_019_struct_anonymous_field_method project main.go package main import ( "fmt" ) type Person struct { name string sex byte age int } func (p *Person) PrintInfo() { fmt.Printf("Person:%s,%c,%d\n", p.name, p.sex, p.age) } type Stu

继承、方法重写小案例

1 package com.kehou.print; 2 3 /** 4 * 父类:打印机类 5 * @author 6 * 7 */ 8 public abstract class Printer { 9 public abstract void print(); 10 } 1 package com.kehou.print; 2 3 /** 4 * 子类:针式打印机类 5 * @author 6 * 7 */ 8 public class DotMatrixPrinter extends P