Skip to Main Content

Java Programming

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Re: Abstract Class

NickR2600-OracleMay 24 2018 — edited May 29 2018

Great question!  You're absolutely correct.  Abstract classes may contain methods with implementations.  These are called concrete methods.  Abstract classes may also contain methods without implementations.  These are called abstract methods.  To make a method abstract, you'd replace everything within the curly braces with a semi-colon.  So for example, an abstract printDetails() method would look like this:

public void printDetails();

Concrete classes, like SavingsAccount and CheckingAccount, can't contain abstract methods.  That means at some point in the inheritance structure, you'll need write a version of these methods with an implementation.  Otherwise, you won't be able to create instances of those classes.  In the case of SavingsAccount, this would be:

public void printDetails(){

     System.out.println(accountType +" #" +accountNum);

     System.out.println("Account Owner: " +accountOwner);

     System.out.println("Balance: $" +balance);

     System.out.println("Interest Rate: " +interestRate);

     System.out.println("");

}

And in CheckingAccount this would be:

public void printDetails(){

     System.out.println(accountType +" #" +accountNum);

     System.out.println("Account Owner: " +accountOwner);

     System.out.println("Balance: $" +balance);

     System.out.println("");

}


You'll notice both methods print the account owner and balance.  Generally, we want to reduce duplication like this.  It makes the code more maintainable if this functionality were written in a single place rather than duplicated.  This is because if we realize we've made a mistake or need to have additional functionality, we'd only need to make edits in one place.  This makes the printDetails() method of the Account super class the perfect place write this functionality once.  But doing so means the method can no longer be abstract.

Comments

Billy Verreynne

Sounds like the installer attempted to resolve your Windows platform's hostname to an IP address and failed.
What is the primary IP of your platform? Is it DHCP? If so, what assigns the IPs (home router/VPN/etc) and hostname? (use ipconfig to check IP configuration).
If the db installation part succeeded, then getting the Listener working should be trivial. Is the Oracle XE database instance up and running, and can you connect to it using "sqlplus / as sysdba"?

Eslam_Elbyaly

I am sorry. It does not say "Configuring Listener", it says "Configuring Oracle Software". I edited the question.
No sqlplus or any binaries. It's just about 4 folders. Each with a couple of files.
my pc is not connected to a router or anything. I just installed the Lan driver.
ipconfig just shows "media disconnected".
I tried assigning an IP manually but did not work. I even opened the "hosts" file and added a new line with the manual IP I assigned like this.... "192.168.1.1 localhost" without quotes. Always the same problem.

Billy Verreynne

Do NOT set other addresses as localhost.
What is your platform's NetBIOS name? Typically the same name is used as IP hostname.
A "ping <hostname>" should work. If not then it is unlikely that Oracle will work correctly.
You can try adding your hostname to IP 127.0.0.1 in \windows\system32\drivers\etc\hosts (think that's the location). No idea however how your kernel's networking in general will react to it. So undo it in case of encountering errors.
The 127.0.0.0 subnet is yours though. You can look at adding IPs to it for local only hosts and networking via the IP stack's loopback interface.
Recommendation however is a working LAN config.

Eslam_Elbyaly

Do NOT set other addresses as localhost.
There was not any addresses set in the hosts file. All are commented like this...

#127.0.0.1 localhost
#::1 localhost
ping localhost returns.....
reply from ::1: time<1ms
reply from ::1: time<1ms
reply from ::1: time<1ms
reply from ::1: time<1ms
I tried adding 127.0.0.1 localhost and ahmed-PC(my computers name) to the hosts file with no vain.

Billy Verreynne

Your hosts file should look as follows:

127.0.0.1 localhost 
::1       ip6-localhost ip6-loopback 
fe00::0   ip6-localnet 
ff00::0   ip6-mcastprefix 
ff02::1   ip6-allnodes 
ff02::2   ip6-allrouters

You can try adding your PC name to 127.0.0.1:

127.0.0.1  localhost ahmed-pc

However, you should instead define a network interface with a private address such as 192.168.0.11/24.

Eslam_Elbyaly

unfortunately, I figured out that it needs a network specialist or something. I dropped windows 7 and installed windows 8.1 and the database was installed successfully. Thanks Billy for your help.

Billy Verreynne

You should consider dropping Windows entirely for Linux.
And despite the vaccine jab, I still prefer Linux and don't like Gates and Windows. My 5G reception though is now excellent.

Eslam_Elbyaly

Do you mean Oracle Linux? Or another distribution?

Billy Verreynne

I prefer Ubuntu with KDE, called Kubuntu. Ubuntu has excellent device support for laptops and desktops (am using it for both). Plasma KDE is the best desktop GUI.
Been using Kubuntu now for over a decade for Oracle database development and administration and support. Am using Oracle InstantClient (with sqlplus) and SQL-Developer on it. Been using Linux as a desktop for over 20 years.
Oracle however does not support the Debian branch for their db server s/w - they use the Redhat branch. Oracle XE 10g works on Ubuntu, but XE 18c does not.
So I use vagrant on Kubuntu - git clone https://github.com/oracle/vagrant-projects
This has vagrant builds for everything from Oracle RAC, DataGuard, GoldenGate, to Oracle XE.
Change dir to ./vagrant-projects/OracleDatabase/18.4.0.-XE and run vagrant up. Some minutes later you have an Oracle Linux 7 VM running an Oracle XE 18c database.

Billy Verreynne

Oh yeah - alternatives to the typical Windows user s/w stack:
MS Office replaced with Libre (Open) Office. Outlook replaced by Web Outlook. MS Teams Linux version used, or the web-based Teams can be used. Zoom supports Linux. KDE Konsole instead of Putty. Chrome/Firefox instead of Edge/IE11.
No anti-virus needed. And your laptop/desktop will be untouched in a ransome ware attack.
Tons of free Open Source s/w available.
Freedom to choose and configure and install and upgrade.
edit: PS. and OpenConnect for VPN access instead of Cisco AnyConnect.

1 - 10

Post Details

Added on May 24 2018
3 comments
735 views