Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6908399
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 27, 20262026-05-27T08:33:31+00:00 2026-05-27T08:33:31+00:00

if we cast an object to an interface, won’t this object be able to

  • 0

if we cast an object to an interface, won’t this object be able to call its own methods? in the following example, myObj will only be able to call MyInterface methods?

MyInterface myObj = new Obj();

If this is correct, what is the difference between those 2 objects :

MyInterface myObj = new Obj();

MyInterface mySec = new Sec();

Thanks for your help

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-27T08:33:31+00:00Added an answer on May 27, 2026 at 8:33 am
    MyInterface myObj = new Obj(); 
    MyInterface mySec = new Sec(); 
    

    For this to be legal, both Obj and Sec will have to be implementers of MyInterface. The difference between these two objects would be how they provide that implementation. Obj and Sec could do two very different or very similar things, but their commonality is that they would adhere to a contract that you could rely upon. Consider you have a method

    public void doSomethingWith(MyInterface thing) {
         thing.frob();
    }
    

    Each object, myObj and mySec, could be passed into this method, and this method could then use that object’s frob method (assuming frob is part of the interface declaration). This is liberating. This allows you to do very powerful things, by programming to interfaces and not to implementations. For example, you can extend functionality of classes and not change a line of code in those classes, you simply pass a different implementation of a dependency. You are not tied to, or coupled with, any one implentation inside the method doSomethingWith.

    but i also read that if we declare the object myObj as MyInterface,
    myObj won’t be able to use its own methods (from the class Obj), is
    that correct

    Internally, instances of Obj will continue to have full access to the Obj API. myObj is still an Obj, it will always be able to use its own implementation details.

    public interface MyInterface {
        void frob();
    }
    
    public class Obj implements MyInterface {
    
        public void frob() {
            doFrobbing();
        }
    
        private void doFrobbing() {
            System.out.println("frobbing");
        }
    
        public static void main(String[] args) {
            MyInterface myObj = new Obj();
            myObj.frob(); // still internally calls doFrobbing()
            ((Obj)myObj).doFrobbing(); // visible only via class reference
        }
    }
    

    Instances of Obj will still be instances of Obj, and those instances will still be able to use doFrobbing. Externally, persons using those instances via the interface reference will only be able to access the interface methods.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have following exception in the foreach loop Unable to cast object of type
How to cast an object (of type Object) into its real type? I need
-Edit- Alternative question/example How do i cast A to object to class A when
When I am trying to cast Object obj to Type T , if it
How to solved error Unable to cast object of type 'System.Int32' to type 'Microsoft.DirectX.Direct3D.VertexShader'
I try to cast an object to my Action class, but it results in
I need to cast a generic VBA form control object into a ComboBox object
I'm trying to cast away const from an object but it doesn't work. But
I want to cast both MenuItem objects and Button control objects to an object
I have a QVariant object within a QTreeWidgetItem, how can I cast it to

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.