What is the output of the following C++ program? #include #include using namespace std; class Circle { public: Circle(double radius) {this->radius…

What is the output of the following C++ program? #include [removed] #include [removed] using namespace std; class Circle { public: Circle(double radius) {this->radius = radius; } void put() const {cout << “Radius = ” << radius;} private: double radius; }; class ColoredCircle: public Circle { public: ColoredCircle(double radius, string color); void put() const; private: string color; }; ColoredCircle::ColoredCircle(double radius, string color) : Circle(radius), color(color) {} void ColoredCircle::put() const { Circle::put(); cout << ” Color = ” <[removed]put(); cout <[removed]put(); cout << endl; return 0; } Modify the program so that the put function is virtual. What is the output after that change? Does Java allow both virtual and nonvirtual methods? If not, which does it allow? Rewrite this program in Java and identify at least four differences between the programs in the two languages.