C#父类与子类的关系

这里,我做一个整合。

这里前期要极其注意修饰符之间的关系。

1.Main调用方法,其实我也不知道叫什么,大家看代码吧。

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

namespace ConsoleApplication1
{

    class Program
    {
        static void Main(string[] args)
        {
            FarClass f = new FarClass();
            f.print();
            Console.ReadKey();
        }

        class FarClass
        {
            public void print()
            {
                Console.WriteLine("Hello");
            }
        }
    }
}

2. 子类继承父类

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

namespace ConsoleApplication1
{

    class Program
    {
        static void Main(string[] args)
        {
            //查看子类继承情况
            SubClass sub = new SubClass();
            sub.Sfun();
            sub.Bfun();
            //实例父类
            BaseClass Base = new BaseClass();
            Base.Bfun();
            Console.ReadKey();
        }

        class BaseClass
        {
            public void Bfun()
            {
                Console.WriteLine("父类方法");
            }
        }
        //子类继承父类
        class SubClass:BaseClass
        {
            public void Sfun()
            {
                Console.WriteLine("子类方法");
            }
        }
    }
}

3.子类重写父类,父类关键字(Virtual),子类关键字(Override);

也就是扩展方法的意思,并且注意子类方法与父类方法重名。

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

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            //父类
            BaseClass Basefun = new BaseClass();
            Basefun.Basefun();
            //扩展父类方法,注意实例的对象为子类
            BaseClass Subfun = new SubClass();
            Subfun.Basefun();
            Console.ReadKey();
        }
        class BaseClass
        {
            public virtual void Basefun()
            {
                Console.WriteLine("父类方法");
            }
        }
        class SubClass:BaseClass
        {
            public override void Basefun()
            {
                Console.WriteLine("子类方法");
            }
        }
    }
}

4.使用NEW关键字隐藏,隐藏时,访问父类则调用父类的方法,访问子类则调用子类的方法。

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

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            SubClass s = new SubClass();
            s.Same();
            BaseClass b = new BaseClass();
            s.Same();

            //new后,隐藏父类与子类同名方法

            Console.ReadKey();
        }
        class BaseClass
        {
            public void Same()
            {
                Console.WriteLine("父类相同方法");
            }
        }
        class SubClass:BaseClass
        {
            new public void Same()
            {
                Console.WriteLine("子类相同方法");
            }
        }
    }
}

5.暂时写到这里吧。。。。

时间: 2024-11-09 21:45:54

C#父类与子类的关系的相关文章

C#基础知识—父类和子类的关系

public class ParentClass { public ParentClass() { } public string NamePropety { get; set; } public void GetName() { } } public class ChildClass:ParentClass { public ChildClass() { } public int Age { get; set; } public int GetAge() { return 10; } } Pa

java中父类与子类的关系以及使用

java中父类与子类的关系以及使用 在java中规定:一个父类可以有多个子类,但是一个子类只能有一个父类.子类可以通过extends关键字来继承父类.做个比较通俗的比喻,就像一个父亲可以有多个亲孩子,但是一个孩子只能有一个亲生父亲. 1.继承以及重写:子类继承父类是对父类属性和方法的全面继承,同时子类在继承了父类的方法后,可对父类的方法进行重写. public class Son extends Fat{ private int b; private String h1; public void

python 继承/父类和子类的关系

# <editor-fold desc="父类和子类关系,继承"># <editor-fold desc="类--讲解--Car"> class Car(): def __init__(self,make,model,year): self.make=make self.model=model self.year =year self.meter=0 def get_car_desc(self): long_name=str(self.yea

Java中的继承:父类和子类的关系

一.父类引用指向子类对象时 1.若子类覆盖了某方法,则父类引用调用子类重新定义的新方法 2.若子类未覆盖某方法,则父类引用调用父类本身的旧方法 3.若子类覆盖了某属性,但父类引用仍调用父类本身的旧属性 4.若子类未覆盖某属性,则父类引用调用父类本身的旧属性 5.父类引用不能访问子类新定义的方法 二.子类引用指向自身对象时 1.若子类覆盖了某方法,则子类引用调用子类重新定义的新方法 2.若子类未覆盖某方法,则子类引用调用父类本身的旧方法 3.若子类覆盖了某属性,则子类引用调用子类重新定义的新属性

c++ --&gt; 父类与子类间的继承关系

一.父类与子类 父类与子类的相互转换 1.派生类的对象可以赋给基类,反之不行 2.基类的指针可以指向派生类,反之不行 3.基类的引用可以初始化为派生类的对象,反之不行 4.派生类指针必须强制转换为基类指针后才可以指向基类 5.基类指针转换为派生类指针容易导致崩溃性错误 6.虚基类的引用或派生不能转换为派生类 class father{ //}; class son : public father{ //}; int main() { father f; son s; f = s;//正确 s =

父类和子类关系/继承

#!/usr/bin/env python # -*- coding: utf-8 -*- """ @File:继承_子类和父类的关系.py @E-mail:[email protected] @Time:2020/4/4 12:39 上午 @Author:Nobita @Version:1.0 @Desciption:父类和子类关系/继承 """ class Car(): def __init__(self, make, model, year

C#父类子类对象关系

案例: 主要有Vehicle.cs  Airplane.cs   Car.cs  3个类. Car和Airplane都继承与Vehicle类.Vehicle中Drive为虚方法,可在子类中重写,父类引用子类对象,并在car中重写了Drive方法. 1 class Vehicle 2 { 3 public void StartEngine(string noiseToMakeWhenStaring) 4 { 5 Console.WriteLine("starting engine:{0}"

java基础入门-父类引用子类对象(2)-抽象类

抽象类:具有抽象方法的类,需要使用abstract关键字修饰 关系图 下面上代码 package com.ray.testobject; /** * 抽象类 * * @author ray * @since 2015-05-02 * @version 1.0 * */ public abstract class Person { public abstract void getDescription(); } package com.ray.testobject; /** * 实现类 * * @

父类到子类的转换和instance of运算符

父类到子类的转换和instanceof运算符 主讲教师:王少华 QQ群号:483773664 学习目标: 1)   父类与子类转换:向下转换 2)   掌握instanceof运算符的使用 一.  问题:实现主人与宠物的玩耍功能 (一)   需求: 和狗玩接飞船游戏,狗的健康值减少10,与主人亲密度增加5 和企鹅玩游泳游戏,企鹅的健康值减少10,与主人亲密度增加5 (二)   实现思路 1)   给Dog类添加catchingFlyDisc方法,实现接飞盘功能: 2)   给Penguin类添加