C++中类的继承

#include <iostream.h>
using namespace std;

class A {    
    public:
    int a;
    protected:
    int b;
    private:
    int c;
    public:
    void test() {
        cout<<"test public a\n";
    }
    A(int a) {
        this->a=a;
    }
    A() {
        
    }
    protected:
    void test1() {
        
        cout<<"test1 protected\n";
    }
    private:
    void test2() {
        
        cout<<"test2 private\n";
    }
};

class B:public A {
    public:
    void testb() {
        this->test1();  //¼Ì³ÐÏÂÀ´ÁË  ¶øÇÒ protected  public ¶¼Êǿɼ̳еÄ
    }
    /*void testb1() {
        this->test2();
    } */  //²»¿É±»¼Ì³ÐµÄ
    void testb2() {
        
        cout<<"test b2 public\n";
    }
    protected:
    void testb3() {
        
        cout<<"test b3 protected\n";
    }
};

class C:public A,public B {
    //c++ÓïÑÔÀïÃæµÄ¶à¼Ì³Ð
};

class D:public A,protected B {
    //¿É¼û B protected·½Ê½¼Ì³ÐÏÂÀ´µÄʱºò  Ö»ÄÜÔÚº¯ÊýÀïÃæ·ÃÎÊ  ÍâÃæÊDz»ÄÜ·ÃÎʵÄ
    public:
    void testd() {
        this->testb2();
        cout<<"----------------";
        this->testb3();
    }
};

int main() {
    
    A a;
    a.test();
    B b;
    b.testb();
    C c;
    c.testb2();
    D d;
    d.testd();
    d.test();
        
    return 0;
}

时间: 2024-11-11 04:35:46

C++中类的继承的相关文章

浅谈Java中类的继承

继承作为面向对象的三大基本特征之一,也是Java中必不可少的组成部分.因此,Java中类的继承和其他面向对象语言的继承都是大同小异的. 继承的优点: 通过继承可以简化类的定义. Java只支持单继承,不允许多重继承. 可以有多承继承,即一个类可以继承某个类的子类,如类B继承了类A,类C又继承了类B,那么C也间接的继承了A. 子类继承所有父类的成员变量和成员方法,但不继承父类的构造方法.在子类的构造方法中,可使用语句super(参数列表)调用父类的构造方法. 如果子类的构造方法中没有显性的调用父类

再谈Java中类的继承

上篇博客谈到了Java中类的继承,但是那些远远不能满足我们在实际操作中的需要,那么怎么才能让子类的功能更强大,并且具有父类的属性呢? 一: 父类 1 public class A { 2 3 final String name="A"; 4 5 void A1(){}; 6 } 子类 1 public class AA extends A{ 2 3 String name="AA"; 4 5 void AA1(){}; 6 7 public static void

Java中类的继承,属性和方法的四种修饰符的作用范围,final关键字,java的三大特点中的2个:封装和多态,以及多态的一个设计模式,模板方法模式(template method)

(一)Java中的继承: 关于继承,在Java中类的继承只能是单继承,不像C+++那样灵活,可以多继承,多继承的后果就是各种关系乱套,就相当于一个孩子有2个母亲一样,社会关系的复杂,不利于程序后期的开发和维护,所有Java中的类是只能单继承,通过接口来实现多继承:对于接口的话,是可以多继承的,例如:A接口可以同时继承接口B和接口C,但是有一点要注意,就是实现接口A的类必须要实现接口A.B.C中所有的抽象方法:接口之所以可以多继承,就是因为接口结构比较简单. 继承是通过extends关键字来实现,

python设计模式1:python中类的继承

在面向对象的程序设计中,继承(Inheritance)允许子类从父类那里获得属性和方法,同时子类可以添加或者重载其父类中的任何方法.在C++和Java的对象模型中,子类的构造函数会自动调用父类的构造函数,但在Python中却不是这样,你必须在子类中显示调用父类的构造函数. In [1]: class Employee: ...: def __init__(self,name,salary=0): ...: self.name = name ...: self.salary = salary ..

Objective-C基础1:OC中类的继承和组合

1.类的定义和声明 OC中的类声明是以@interface开始@end结束. OC中的类定义以@implementation开始@end结束. OC中的方法声明: - (void) setName : (NSString*) strName;前面的短线-表示这是一个方法,(void)表示返回值, setName表示方法名称,(NSString*) StrName表示参数是NSString*类型,名称是strName,注意:()一定要加 OC中的成员变量定义在类声明的{}中,这一点跟方法声明不一样

PHP中类的继承关系

在PHP中,我时常会写一个类,类写了一个共用方法,然后让子类去继承就能得到相应的功能.假设大致有这么一个父类:  1 <?php  2 class Father{  3   4     public function __construct(){  5         echo '我是父类的构造方法!';  6     }  7   8     protected function say($str = 'Hello World!'){  9         echo '说了一句话:' . $s

C++中类的继承关系梳理

人生苟且了很长时间,需要再继续努力了. 总结了C++的继承方面的关系: 朋友在面试的时候被问过一个问题,说类的继承重要的一点是什么,他没有答到点子上,后来面试官提到的是代码的复用,不用每次都重新写相同的代码,还是有道理的. 类的声明: class TableTennisPlayer{private: string firstname; string lastname; bool hashTable; public: TableTennisPlayer(const string &fn = &quo

javascript中类式继承和原型式继承的实现方法和区别

在所有面向对象的编程中,继承是一个重要的话题.一般说来,在设计类的时候,我们希望能减少重复性的代码,并且尽量弱化对象间的耦合(让一个类继承另一个类可能会导致二者产生强耦合).关于“解耦”是程序设计中另一个重要的话题,本篇重点来看看在javascript如何实现继承. 其它的面向对象程序设计语言都是通过关键字来解决继承的问题(比如extend或inherit等方式).但是javascript中并没有定义这种实现的机制,如果一个类需要继承另一个类,这个继承过程需要程序员自己通过编码来实现. 一.类式

php中类的继承

1.子类继承父类用extends关键字 2.子类只能继承自一个父类,但父类可以继承自另一个类 3.继承时,可以继承父类的公共/保护的属性和方法,不能继承私有的属性和方法 4.子类中,可以声明与父类同名的属性和方法进行覆盖,但继承的权限只能是相同或者越来越宽松,不能越来越严格,比如父类中声明protected $a,则子类中不能声明private $a,只能是用public或者protected

C#中类的继承 override virtual new的作用以及代码分析

继承中override virtual new的作用 virtual     父类中需要注明允许重写的方法: override   子类中必须显示声明该方法是重写的父类中的方法: new         子类中忽略父类的已存在的方法,“重写该方法“: C#中不支持隐式重写子类的方法 即如果父类方法没有加virtual关键字,即不是一个虚方法,则在子类中只能隐藏基类方法(new),而不能覆盖(override): 代码分析 这是一个base类A有很多子类: 1 class A 2 { 3 publ