Casting & abstract class & final method

what is casting abstract class & final method  in ABAP Objects  give   some scenario where  actually  use these.

Hi Sri,
I'm not sure we can be any more clear.
An Abstract class can not be instantiated. It can only be used as the superclass for it's subclasses. In other words it <b>can only be inherited</b>.
A Final class cannot be the superclass for a subclass. In other words <b>it cannot be inherited.</b>
I recommend the book <a href="http://www.sappress.com/product.cfm?account=&product=H1934">ABAP Objects: ABAP Programming in SAP NetWeaver</a>
Cheers
Graham

Similar Messages

  • ABSTRACT class and method

    Dear all Abaper experts,
    I am doubt on a abap object program shown as below. It is a ABSTRACT class and method. However, during compiling, an error message is displayed "The abstract method 'WRITE_STATUS' may not be implemented". What does it mean?
    REPORT  ZOOP_ABSTRACT.
    * Class Declaration
    CLASS vehicle DEFINITION ABSTRACT.
      PUBLIC SECTION.
        METHODS: accelerate,
                 write_status ABSTRACT.
      PROTECTED SECTION.
        DATA speed TYPE i.
    ENDCLASS.
    CLASS plane DEFINITION INHERITING FROM vehicle.
      PUBLIC SECTION.
        METHODS: rise.
      PROTECTED SECTION.
        DATA altitude TYPE i.
    ENDCLASS.
    CLASS ship DEFINITION INHERITING FROM vehicle.
    ENDCLASS.
    * Class Implementation
    CLASS vehicle IMPLEMENTATION.
      METHOD accelerate.
        speed = speed + 1.
      ENDMETHOD.
    ENDCLASS.
    CLASS plane IMPLEMENTATION.
      METHOD rise.
        altitude = altitude + 1.
      ENDMETHOD.
      METHOD write_status.
        WRITE: / 'Plane speed:', speed.
        WRITE: / 'Altitude:', altitude.
      ENDMETHOD.
    ENDCLASS.
    CLASS ship IMPLEMENTATION.
    ENDCLASS.
    * Global Data
    DATA: plane_ref TYPE REF TO plane,
          ship_ref  TYPE REF TO ship.
    * Classical Processing Blocks
    START-OF-SELECTION.
      CREATE OBJECT: plane_ref,
                     ship_ref.
      CALL METHOD: plane_ref->accelerate,
                   plane_ref->rise,
                   plane_ref->write_status,
                   plane_ref->accelerate,
                   plane_ref->write_status.
    All answers are welcome and appreciate for the help.

    Hi,
    try this code I've rearranged your Class Implementation and just added the foll code;
      write_status REDEFINITION in the Definition part of the Subclass.
    * Class Declaration
    CLASS vehicle DEFINITION ABSTRACT.
      PUBLIC SECTION.
        METHODS: accelerate,
                 write_status ABSTRACT.
      PROTECTED SECTION.
        DATA speed TYPE i.
    ENDCLASS.
    * Class Implementation
    CLASS vehicle IMPLEMENTATION.
      METHOD accelerate.
        speed = speed + 1.
      ENDMETHOD.
    ENDCLASS.
    CLASS plane DEFINITION INHERITING FROM vehicle.
      PUBLIC SECTION.
        METHODS: rise,
                 write_status redefinition.   
      PROTECTED SECTION.
        DATA altitude TYPE i.
    ENDCLASS.
    CLASS plane IMPLEMENTATION.
      METHOD rise.
        altitude = altitude + 1.
      ENDMETHOD.
      METHOD write_status.
        WRITE: / 'Plane speed:', speed.
        WRITE: / 'Altitude:', altitude.
      ENDMETHOD.
    ENDCLASS.
    CLASS ship DEFINITION INHERITING FROM vehicle.
      PUBLIC SECTION.
        METHODS: write_status redefinition. 
    ENDCLASS.
    CLASS ship IMPLEMENTATION.
      METHOD write_status.
        WRITE: / 'In Ship Class.'.
      ENDMETHOD.
    ENDCLASS.
    * Global Data
    DATA: plane_ref TYPE REF TO plane,
          ship_ref  TYPE REF TO ship.
    * Classical Processing Blocks
    START-OF-SELECTION.
      CREATE OBJECT: plane_ref,
                     ship_ref.
      CALL METHOD: plane_ref->accelerate,
                   plane_ref->rise,
                   plane_ref->write_status,
                   plane_ref->accelerate,
                   plane_ref->write_status,
                   ship_ref->write_status.
    Best Regards,
    Sunil.

  • Java abstract classes and methods

    Can anyone please tell me any real time example of abstract classes and methods.
    I want to know its real use. If anyone have ever used it for some purpose while programming please do tell me.

    Ashu_Web wrote:
    No please.. I just want to know if you have used it while programming. Like "an abstract class can be used to put all the common method names in it without having to write actual implementation code."That would describe an Interface better than an abstract class. Abstract classes usually have at least some implementation.
    I want to know its usage in programming, not just a definition. I guess you understand what I am looking for.Yes, and I gave you one: java.util.AbstractList. It can be found inside the src.zip in your JDK directory and it is a pretty good example for an abstract class that provides some implementation and defines exactly what is necessary to make a full List implementation.

  • Abstract classes and methods with dollar.decimal not displaying correctly

    Hi, I'm working on a homework assignment and need a little help. I have two classes, 1 abstract class, 1 extends class and 1 program file. When I run the program file, it executes properly, but the stored values are not displaying correctly. I'm trying to get them to display in the dollar format, but it's leaving off the last 0. Can someone please offer some assistance. Here's what I did.
    File 1
    public abstract class Customer//Using the abstract class for the customer info
    private String name;//customer name
    private String acctNo;//customer account number
    private int branchNumber;//The bank branch number
    //The constructor accepts as arguments the name, acctNo, and branchNumber
    public Customer(String n, String acct, int b)
        name = n;
        acctNo = acct;
        branchNumber = b;
    //toString method
    public String toString()
    String str;
        str = "Name: " + name + "\nAccount Number: " + acctNo + "\nBranch Number: " + branchNumber;
        return str;
    //Using the abstract method for the getCurrentBalance class
    public abstract double getCurrentBalance();
    }file 2
    public class AccountTrans extends Customer //
        private final double
        MONTHLY_DEPOSITS = 100,
        COMPANY_MATCH = 10,
        MONTHLY_INTEREST = 1;
        private double monthlyDeposit,
        coMatch,
        monthlyInt;
        //The constructor accepts as arguments the name, acctNo, and branchNumber
        public AccountTrans(String n, String acct, int b)
            super(n, acct, b);
        //The setMonthlyDeposit accepts the value for the monthly deposit amount
        public void setMonthlyDeposit(double deposit)
            monthlyDeposit = deposit;
        //The setCompanyMatch accepts the value for the monthly company match amount
        public void setCompanyMatch(double match)
            coMatch = match;
        //The setMonthlyInterest accepts the value for the monthly interest amount
        public void setMonthlyInterest(double interest)
            monthlyInt = interest;
        //toString method
        public String toString()
            String str;
            str = super.toString() +
            "\nAccount Type: Hybrid Retirement" +
            "\nDeposits: $" + monthlyDeposit +
            "\nCompany Match: $" + coMatch +
            "\nInterest: $" + monthlyInt;
            return str;
        //Using the getter method for the customer.java fields
        public double getCurrentBalance()
            double currentBalance;
            currentBalance = (monthlyDeposit + coMatch + monthlyInt) * (2);
            return currentBalance;
    }File 3
        public static void main(String[] args)
    //Creates the AccountTrans object       
            AccountTrans acctTrans = new AccountTrans("Jane Smith", "A123ZW", 435);
            //Created to store the values for the MonthlyDeposit,
            //CompanyMatch, MonthlyInterest
            acctTrans.setMonthlyDeposit(100);
            acctTrans.setCompanyMatch(10);
            acctTrans.setMonthlyInterest(5);
            DecimalFormat dollar = new DecimalFormat("#,##0.00");
            //This will display the customer's data
            System.out.println(acctTrans);
            //This will display the current balance times 2 since the current
            //month is February.
            System.out.println("Your current balance is $"
                    + dollar.format(acctTrans.getCurrentBalance()));
        }

    Get a hair cut!
    h1. The Ubiquitous Newbie Tips
    * DON'T SHOUT!!!
    * Homework dumps will be flamed mercilessly. [Feelin' lucky, punk? Well, do ya'?|http://www.youtube.com/watch?v=1-0BVT4cqGY]
    * Have a quick scan through the [Forum FAQ's|http://wikis.sun.com/display/SunForums/Forums.sun.com+FAQ].
    h5. Ask a good question
    * Don't forget to actually ask a question. No, The subject line doesn't count.
    * Don't even talk to me until you've:
        (a) [googled it|http://www.google.com.au/] and
        (b) had a squizzy at the [Java Cheat Sheet|http://mindprod.com/jgloss/jcheat.html] and
        (c) looked it up in [Sun's Java Tutorials|http://java.sun.com/docs/books/tutorial/] and
        (d) read the relevant section of the [API Docs|http://java.sun.com/javase/6/docs/api/index-files/index-1.html] and maybe even
        (e) referred to the JLS for "advanced" questions.
    * [Good questions|http://www.catb.org/~esr/faqs/smart-questions.html#intro] get better Answers. It's a fact. Trust me on this one.
        - Lots of regulars on these forums simply don't read badly written questions. It's just too frustrating.
          - FFS spare us the SMS and L33t speak! Pull your pants up, and get a hair cut!
        - Often you discover your own mistake whilst forming a "Good question".
        - Often you discover that you where trying to answer "[the wrong question|http://blog.aisleten.com/2008/11/20/youre-asking-the-wrong-question/]".
        - Many of the regulars on these forums will bend over backwards to help with a "Good question",
          especially to a nuggetty problem, because they're interested in the answer.
    * Improve your chances of getting laid tonight by writing an SSCCE
        - For you normal people, That's a: Short Self-Contained Compilable (Correct) Example.
        - Short is sweet: No-one wants to wade through 5000 lines to find your syntax errors!
        - Often you discover your own mistake whilst writing an SSCCE.
        - Often you solve your own problem whilst preparing the SSCCE.
        - Solving your own problem yields a sense of accomplishment, which makes you smarter ;-)
    h5. Formatting Matters
    * Post your code between a pair of &#123;code} tags
        - That is: &#123;code} ... your code goes here ... &#123;code}
        - This makes your code easier to read by preserving whitespace and highlighting java syntax.
        - Copy&paste your source code directly from your editor. The forum editor basically sucks.
        - The forums tabwidth is 8, as per [the java coding conventions|http://java.sun.com/docs/codeconv/].
          - Indents will go jagged if your tabwidth!=8 and you've mixed tabs and spaces.
          - Indentation is essential to following program code.
          - Long lines (say > 132 chars) should be wrapped.
    * Post your error messages between a pair of &#123;code} tags:
        - That is: &#123;code} ... errors here ... &#123;code}
        - OR: &#91;pre]&#123;noformat} ... errors here ... &#123;noformat}&#91;/pre]
        - To make it easier for us to find, Mark the erroneous line(s) in your source-code. For example:
            System.out.println("Your momma!); // <<<< ERROR 1
        - Note that error messages are rendered basically useless if the code has been
          modified AT ALL since the error message was produced.
        - Here's [How to read a stacktrace|http://www.0xcafefeed.com/2004/06/of-thread-dumps-and-stack-traces/].
    * The forum editor has a "Preview" pane. Use it.
        - If you're new around here you'll probably find the "Rich Text" view is easier to use.
        - WARNING: Swapping from "Plain Text" view to "Rich Text" scrambles the markup!
        - To see how a posted "special effect" is done, click reply then click the quote button.
    If you (the newbie) have covered these bases *you deserve, and can therefore expect, GOOD answers!*
    h1. The pledge!
    We the New To Java regulars do hereby pledge to refrain from flaming anybody, no matter how gumbyish the question, if the OP has demonstrably tried to cover these bases. The rest are fair game.

  • Abstract class & final class

    Which is more correct... Or which is the more preferred way.
    abstract class A
      final method1(){}
      final method2(){}
      final method30(){}
    }or
    final class A
      private A(){}
      method1(){}
      method2(){}
      method3(){}
    }My understanding is that both classes cannot be instantiated. The first one requires writing 'final' for EACH method. The second one involves writing a private constructor.

    It depends on what you are trying to do. If you are trying to make a class that can be sub-classed but has some methods that cannot be overriden, then "abstract class A" with final methods is the way to go. If you want a class that cannot be sub-classed or instantiated then "final class A" with private constructor is the way to go.
    classes cannot be instantiatedOnly true for "final class A" because you made the only constructor private. Not true for the abstract one.// you forgot return values for the methods
    abstract class A
      final static /*void*/ method1(){}  // package private
      final static /*void*/ method2(){}  // package private
      final static /*void*/ method30(){} // package private
    // this would work
    A a = new A(){};
    // if I am in the same package as A, then this would work
    a.method1();
    // or this
    public class B extends A
      public B(String whatever)
        // Although, I cannot override the super methods
        // becuase they are all declared as final
        // I can only invoke them if I am in the same package.  You
        // declared them as package private instead of class "private"
    }Using final as a class modifier disables the ability to sub-class it but does not disable the ability to create an object of that class. You must make a private constructer. If the only constructor is "private" then you can't subclass or instantiate, so making the class final is uneeded.

  • Why does this abstract class and method work without implement it?

    hi,
    I have seen many times that in some examples that there are objects made from abstract classes directly. However, in all books, manual and tutorials that I've read explain that we MUST implement those methods in a subclass.
    An example of what I'm saying is the example code here . In a few words that example makes Channels (java.nio.channel) and does operations with them. My problem is in the class to make this channels, because they used the ServerSockeChannel class and socket() method directly despite they are abstracts.
       // Create a new channel: if port == 0, FileChannel on /dev/tty, else
       // a SocketChannel from the first accept on the given port number
    private static ByteChannel newChannel (int netPort)
          throws Exception
          if (netPort == 0) {
             FileInputStream fis = new FileInputStream ("/dev/tty");
             return (fis.getChannel());
          } else {
    //CONFLICT LINES
             ServerSocketChannel ssc = ServerSocketChannel.open(); //<--I have never thought do that!! Anyway, how it is static method may work.
             ssc.socket().bind (new InetSocketAddress (netPort)); //<--but here, this method (socket) is abstract. WHY RETURN A SOCKET????????  this mehod should be empty by default.
             System.out.print ("Waiting for connection on port "
                + netPort + "...");
             System.out.flush();
             ByteChannel channel = ssc.accept();
             ssc.close();
             System.out.println ("Got it");
             return (channel);
       } I test this code and works fine. So why can it be??
    Also, I read that the abstract classes can't have static methods. Is it true???
    Please Help!!
    PS: i have seen this kind of code many times. So i feel that I don't understand how its really the abstract methods are made.
    PS2: I understand that obviously you don't do something like this: *"obj = new AbstractClass(); "*. I dont understand how it could be: ServerSocketChannel ssc = ServerSocketChannel.open(); and the compiler didn't warn.

    molavec wrote:
    ServerSocketChannel ssc = ServerSocketChannel.open(); //<--I have never thought do that!! Anyway, how it is static method may work.
    The static method creates an instance of a class which extends ServerSocketChannel, but is actually another non-abstract class.I thought that, but reading the documentation I saw that about open() method:
    Opens a server-socket channel.
    The new channel is created by invoking the openServerSocketChannel method of the system-wide default SelectorProvider object.
    The new channel's socket is initially unbound; it must be bound to a specific address via one of its socket's bind methods before connections can be accepted.
    ...and the problem is the same openServerSocketChannel is abstract, so i don't understand how it could return a ServerSocketChannel.There is a concrete implementation class that has implemented that method.
    I guess that really the open() method use a SelectorProvider's subclase but it doesn't appear in the doc.It doesn't need to. First, you don't care about those implementation details, and second, you know that if the class is abstract, it must use some concrete subclass.
    Ok, I speak Spanish by default (<-- this sounds like "I am a machine", ^_^' ). So, I didn't know how to say that the method would be {}. Is there a way to say that?? I recommendable for me to know, for the future questions o answers.Not sure what you're saying here. But the other respondent was trying to explain to you the difference between an abstract method and an empty method.
    // abstract method
    public abstract void foo();
    // empty method
    public void bar() {
    Which class does extend ServerSocketChannel? I can not see it.It may be a package-private class or a private nested class. There's no need to document that specific implementation, since you never need to use it directly.

  • Abstract Classes and Method

    Hi all,
    I want to appear for SCJP exam and studying for the same ,
    Can anyone tell whether concrete methods in an abstract class can be overridden by its subclass or not ... ???
    Thanks in advance ,
    Suvo

    Hai
    Actually the overridden concept is supported when the methods are default, protected, public with some constraints, not only when they are protected and public.
    The access specifier in the overriding method (in the derived class) should not be more limiting than that of the overriden method (in the base class). This means that if the access specifier for base class method is protected then the access specifier for the derived class method should not be default or private but can be protected, public. The order of increasing visibility of various specifiers is:
    default
    protected
    public
    Thanks,
    Hari
    Edited by: Hari on Jun 3, 2011 8:45 PM

  • What is the advantage of abstract class and method???

    hi,
    * Why a class is declared as abstract???
    * What is the use of declaring a class as abstract???
    * At what situation abstract class will be used???Thanks
    JavaImran

    To save you from the wrath of the Java experts on this forum, allow me as a relatively new Java user to advise you: do NOT post homework problems here; you're just going to get told to go google the answer. Which would be a good move on your part. Especially since I found the answer to your questions by googling them myself.

  • When to use abstract classes instead of interfaces with extension methods in C#?

    "Abstract class" and "interface" are similar concepts, with interface being the more abstract of the two. One differentiating factor is that abstract classes provide method implementations for derived classes when needed. In C#, however,
    this differentiating factor has been reduced by the recent introduction of extension methods, which enable implementations to be provided for interface methods. Another differentiating factor is that a class can inherit only one abstract class (i.e., there
    is no multiple inheritance), but it can implement multiple interfaces. This makes interfaces less restrictive and more flexible. So, in C#, when should we use abstract classes
    instead of interfaces with extension methods?
    A notable example of the interface + extension method model is LINQ, where query functionality is provided for any type that implements IEnumerable via
    a multitude of extension methods.

    Hi
    Well I believe Interfaces have more uses in software design. You could decouple your component implementing against interfaces so that
    you have more flexibility on changing your code with less risk. Like Inversion of Control patterns where you can use interfaces and then when you decide you can change the concrete implementation that you want to use. Or other uses for interfaces is you could
    use Interceptors using interfaces (Unity
    Interceptor) to do different things where not all of these is feasible or at least as straightforward using abstract classes.
    Regards
    Aram

  • What are abstract classes/methods and what are they for?

    Hi,
    I've just heard about abstract classes and methods and I'm just wondering what exactly they're used for, and why are they there for the Graphics class for example?
    Cheers.

    raggy wrote:
    bastones_ wrote:
    Hi,
    I've just heard about abstract classes and methods and I'm just wondering what exactly they're used for, and why are they there for the Graphics class for example?
    Cheers.Hey bro, I'll try to solve your problemYou have to know two important concepts for this part. 1 is Abstract classes and the other is Interface classes. Depends on the nature of the project, you need to set certain level of standards and rules that the other developers must follow. This is where Abstract classes and Interface classes come into picture.
    Abstract classes are usually used on small time projects, where it can have code implementation like general classes and also declare Abstract methods (empty methods that require implementation from the sub-classes).Wrong, they are used equally among big and small projects alike.
    Here are the rules of an Abstract class and method:
    1. Abstract classes cannot be instantiatedRight.
    2. Abstract class can extend an abstract class and implement several interface classesRight, but the same is true for non-abstract classes, so nothing special here.
    3. Abstract class cannot extend a general class or an interfaceWrong. Abstract classes can extend non-abstract ones. Best example: Object is non-abstract. How would you write an abstract class that doesn't extend Object (directly or indirectly)?
    4. If a class contains Abstract method, the class has to be declared Abstract classRight.
    5. An Abstract class may or may not contain an Abstract methodRight, and an important point to realize. A class need not have abstract methods to be an abstract class, although usually it will.
    6. Abstract method should not have any code implementations, the sub-classes must override it (sub-class must give the code implementations). An abstract method must not have any implementation code code. It's more than a suggestion.
    7. If a sub-class of an Abstract class does not override the Abstract methods of its super-class, than the sub-class should be declared Abstract also.This follows from point 4.
    9. Abstract classes can only be declared with public and default access modifiers.That's the same for abstract and non-abstract classes.

  • Abstract class - access to parent

    Hi:
    I would like to do the following, but I don´t know how (neither if its possible):
    Access from an abstract class a method of its implementer class.
    public class ContainerClass () implements AbstractClass{
    public void AbstractMethod(){
    super().Method1();
    public abstract class AbstractClass(){
    public void Method1(){
    parent.AbstractMethod();
    parent.getClassName(); // I am expecting ContainerClass
    public void AbstractMethod();
    The method Method1 will be the same for every class implementing AbstractClass, but dependent of the implementation of the AbstractMethod in the container class.
    Theoretically, the ContainerClass object should have all the methods implemented in runtime, therefore, all of them accessible in the same object.
    Does anybody know how to do this?
    Cheers!

    You'll probably want to look a bit into the differences between an interface and an abstract class. Here, you're defining AbstractClass which provides a 'default' set of behaviors for another object that will extend it, but you are trying to use it as an interface, which defines what methods must be available.
    For example, if you were defining a few shapes and wanted common behavior to be available, you might define it as an interface:
    public interface Shape {
      public int area();
    public class Square implements Shape {
      private int length;
      public Square(int length) {
        this.length = length;
      public int area() {
        return length * length;
    }By defining Shape as an interface, you guarantee that every class implementing it will have 'public int area()'.
    An abstract class is a little different. It would let you do things like this:
    public abstract class AbstractShape {
      public abstract int area();
      public String toString() {
        return "The area of this shape is " + area();
    public class Square extends AbstractShape {
      // Same code as before
    }It would define default code (which you can also override) as well as certain methods which you must override (or be abstract). These two approaches could also be combined, making AbstractShape and/or Square also implement Shape, which is what a lot of Java API classes do. For example, the List interface defines methods that must be available (like add(), remove(), etc). It also has AbstractList, which implements many of the required List methods, but not all. A class that extends AbstractList only needs to implement a few more methods to be fully usable.

  • Abstract classes in  AS

    Hi,
    are there abstract classes in Action Script (or abstract methods)?
    Thanks,
    Stephanie

    No there are neither abstract classes or methods in AS3.
    You can either use interfaces, or simulate abstract methods by throwing an error in it :
    public function myAbstractMethod():void {
         throw new Error( "Abstract method" );
    This allows you to see when an abstract method is being called and has not been overriden.

  • Geting subclass info from abstract class

    Does ne one know how i can retreive informtion from the subclasses of an abstract class by creatinig an instance of the abstract class.
    are Methods such as getClass used?

    Does ne one know how i can retreive informtion from
    the subclasses of an abstract class by creatinig an
    instance of the abstract class.You can never create an instance of the abstract class. That is why they are called abstract.
    >
    are Methods such as getClass used?
    Coming to your actual question, a superclass will not know anything about its children. So you will have to do something else get that information.
    Maybe inspecting all the classes in a classloader and checking its parent will be an option. I do not think this is possible, because ClassLoader does not provide a mechanism to get all the classes.
    Somebody else might give you a better answer. I am just trying to answer one part of your question concerning abstract classes.

  • PAPI Abstract Classes

    Hi,
      some classes, used by PAPI interfaces and defined in ME wsdl files, are defined as abstract.
      This is the list:
    AbstractBrowsePlugin
    AbstractToolBarStateHandler
    BaseConfigurator
    BaseDispositionRequest
    BaseManagedBean
    BaseReport
    DataAccessException
    DispositionOption
    DispositionRouterStepOption
    ExtensionConfigurationException
    FloorStockReport
    FrameworkRequestHandler
    InvalidSfcLocationStateException
    ListConfigStatus
    NCDataTypeField
    NCRequest
    NCSummaryByItemReport
    Plugin
    ResolveKeyFailureException
    ServiceExtension
    ServiceExtension
    SfcRoutingResponse
    StandardTimeExceededException
    TsmExpiredException
    WipByItemReport
    WipByOperationReport
    WipByWorkCenterReport
    Some of them generate an exception when I call a web service. For example SfcRoutingResponse.
    I think that some classes are defined abstract even if they must be non abstract.
    Thank you for your help,
      Filippo Bottega.

    No there are neither abstract classes or methods in AS3.
    You can either use interfaces, or simulate abstract methods by throwing an error in it :
    public function myAbstractMethod():void {
         throw new Error( "Abstract method" );
    This allows you to see when an abstract method is being called and has not been overriden.

  • Final methods in abstract classes?

    Hi, why is it possible to define a final method in an abstract class? The theory behind a final method doesn't say that a final method couldn't be overridden?
    Marco

    So it's formally correct but it doesn't have any
    sense, does it?You sound very confused. A final method in an
    abstract class has just the same semantics and
    makes just as much sense as in a non-abstract
    class.
    The semantics of a final method is simply that
    it cannot be overridden in subclassed. Both
    abstract and non-abstract classes can be
    subclasses. So why do you think there should be any
    difference?Actually i was confused now it's clear. I was too binded to the concept that the extending class SHOULD(not for a formal reason, but for a 'design' one) write the implementation of the methods defined in the abstract class. Now i see that, actually, by defining a final method in an abstract class we are defining our design as implemented and clients(i.e. subclasses) can only use it.
    Thank you,
    Marco

Maybe you are looking for

  • Could you please add to the smaller windows in mission control the icons to the open applications

    Please Apple add this feature.  I loved spaces and could see in the open windows better to know where I'm going.  Just add the icons to the small windows and that should take care of the problem.  I'm getting lost because I'm not sure which the appli

  • Bug in Illustrator CS6 pattern options palet

    I found out that it was not possible to create a patern swatch with a single copy of 1x1. The preview window kept showing at least a 3x3 version and if you drag the swatch from your swatches pallet it copies 3x3 swatch. Does any one else experienced

  • Range of Material documents

    Hi, We need to reload all the inventory data to BW because of some double loading in BW. We may not able to use posting date for reloading, but might left with one choice by document numbers in OLI1BW.  Since OLI1BW only allows by range for mat docs

  • Forms icon

    Hello friends, Kinldy help me for the following issue. I am using developer 10g, forms . In the form, my icons are displaying the layout editor, but not displaying while the forms being run. Kinldy help me.

  • Can't connect to SQL Server

    Can't connect to SQL Server while filling the RIGHT Server name (with Windows authentication). When i try to start SQL Server (SQLExpress) service from SQL Server Configuration manager, i get following error: