Why Super Classes Always Declared As Interfaces And Not Abstract Class
Dec 1, 2014
While reading the design patter book, i got one doubt ,There is a List an interface having sub classes ArrayList, LinkedList etc.,
Q1) My question is Why they declared the List as interface rather than Abstract class?
Q2) i read some site -
List l = new ArrayList(); Why it is GOOD line?
ArrayList l = new ArrayList() ; Why it is BAD line?
Answer required with detailed information for Q1 and Q2.
View Replies
ADVERTISEMENT
Mar 29, 2014
I did research again....
interface:
methods - abstract, default, static ONLY(abstract methods have no body, while static and defaults do, right?)
fields - public, static, final ONLY
abstract class: a normal class, but has at least one abstract method
methods - all
i.e., static, non-static, abstract (can it have a default method?)
fields - all
i.e., public, protected, private / final, non-final / static, non-static
View Replies
View Related
Jun 20, 2014
When are we allowed to nest interfaces inside a class? Would this be possible? Why or Why not?
View Replies
View Related
May 8, 2014
I have three classes of object, most of which must implement two out of three interfaces. The interfaces look like this:
public interface Source {
public void startSending();
} public interface Sender {
public void setReceiver();
[Code] .....
That works fine, but I am wondering if pairing the interfaces into subinterfaces is a defensible methodology. For example, all classes that act like Producer must implement both the Source and Sender interfaces. And all classes that act like Relayer must implement the Sender and BlackHole interfaces. I could define two subinterfaces like this:
public interface Factory extends Source, Sender {
}
public interface Modifier extends BlackHole, Sender {
}
I could then define my classes like this:
public class Producer implements Factory {
}
public class Relayer implements Modifier {
}
public class Consumer implements BlackHole {
}
Within the class definitions, it makes no difference, as I will have to implement the same methods either way. But it seems more self-documentary to create the subinterfaces from their parent interfaces and name them in ways that reflect what the classes that implement them must actually do.
View Replies
View Related
Apr 6, 2014
I am trying to figure out how I can most easily make it easier to make new types of units in my game. I have buildings and ships, and would like to know how I could make it easy to add new units. I have been recently told about interfaces, and have worked with inheritance a little bit.
What I would like to able to do is have it so that all of the variables and methods common to all ships could be stored in a superclass or interface, and same with the buildings. I would also like to be able to assign behaviours to the buildings and ships, maybe as interfaces, which could contain all of the methods and variables required for the functions of that ship or building.
For example, creating a new type of building that can shoot, build ships, and can regenerate nearby ships. So it would possible inherit all of the variables and methods common to all buildings, such as health, image, x, y, getX(), getY() etc. But it would then also gain the variables and methods essential for its functionality, such as shootRange, shoot(), regenRate, etc.
How could this best be achieved?
View Replies
View Related
Oct 25, 2014
I am reading about interface and i see that classes are allowed inside interfaces which are implicitly static. Here is sample of code i created and i am able to access the static method and fields as well. Here is the code snippet.
public class TestInnerClass {
public static void main(String[] args){
Test.NestedClass.printMe();
}
}
interface Test{
static class NestedClass{
static int x = 100 ;
public static void printMe(){
System.out.println(x);
}
}
}
My question is what is the use of such static classes inside interface? If i don't have access to Foo, i can't ever invoke NestedClass. Whats the design usage?
View Replies
View Related
Oct 8, 2014
What are the benefits of using an Interface plus an abstract class, over just an abstract class?
View Replies
View Related
Mar 5, 2015
How do you declare methods for a class within the class whilst objects of the class are declared else where?
Say for instance, I have a main class Wall, and another class called Clock, and because they are both GUI based, I want to put a Clock on the Wall, so I have declared an instance object of Clock in the Wall class (Wall extends JFrame, and Clock extends JPanel).
I now want to have methods such as setClock, resetClock in the Clock class, but im having trouble in being able to refer to the Clock object thats been declared in the Wall class.
Is this possible? Or am I trying to do something thats not possible? Or maybe I've missed something really obvious?
View Replies
View Related
Sep 15, 2014
What programs use abstract classes?
View Replies
View Related
Jun 4, 2014
why don't I define my methods in a class, rather than going a level up and declaring it first in an abstract class/interface? If the point is to have different implementations for different needs, then we have the option to override the methods.
View Replies
View Related
Nov 19, 2014
I am writing small pieces of code to make sure I understand Java basics and I have the following.
package teams1;
public abstract class Team1{
private String sport = new String();
public abstract String getSport();
public abstract void setSport();
}
import teams1.*;
[Code] .....
It doesn't compile because sport is private in the super class, but I thought FootballTeam1 would inherit it's own copy of sport because it is extending Team1.
View Replies
View Related
Jan 21, 2015
I'm having difficulty understanding this small piece of code:
package food;
public abstract class Fruit {
private String color;
private String tasteType;
public void setColor(String color) {
this.color = color;
}
public abstract void setTasteType(String taste);
}
The above is an abstract class which describes the basic structure that every fruit should "extend".
The below is a concrete subclass of the Fruit class called Apple.
import food.Fruit;
class Apple extends Fruit {
public void setTasteType(String taste) {
tasteType = taste;
}
}
Also do note that the two pieces of code are in different packages!
Upon compiling the Apple class I get the following error:
Apple.java:4: error: tasteType has private access in Fruit
tasteType = taste;
^
What I don't understand is this: I've given a non-abstract implementation to the "setTasteType" method in the Apple class and clearly setTasteType should have the authority to modify the private instance variables of Fruit. But it turns out I'm wrong.
View Replies
View Related
Oct 20, 2014
I am new to Java, and last week had an assignment to create a shopping list. I made it so that I have one class use a ProductData class to load an array of objects (description, price, priority). This week I need to take that program and change it so that it includes an Interface and Abstract Class. I need to also split one class up into at least 2 others.
I am having trouble getting my thoughts together and figuring out what to put in the interface and what to put in the abstract class. I'm thinking that it might be best to split up the ProductData class up into 3 different classes: description, price, and priority. Then have an interface with a print method. Each of those 3 classes will implement the interface.
As for the abstract class, have the price and priority extend the abstract class. The abstract class will be at the same level as the interface and contain the set and get methods. Right now they are of 2 different data types: int, double. Should I make both of them Double, and then use a method to change the priority to an int?
Should price and priority inherit from description, or should they all be at the same level? I am thinking that they should be at the same level because they all describe the item in the array.
My most confusing part is that I have no clue at all on how I can load that array when each object is split up in a different class. My professor went over ArayLists last week, and we can now use them if we want, but the assignment doesn't explicitly say that we should change it to an Array List. Where does the constructor for the ProductData() go? Do I split it up into 3 different constructors?
View Replies
View Related
Feb 2, 2014
I am stuck. It seems like I have done everything by the book but I keep getting the same error: cannot find symbol. The error is specifically addressing lines 9, 10, and 11 in the Alien class file. All that is supposed to happen is an output of information for the two types of aliens.
Java Code:
import javax.swing.*;
public class CreateAliens
{
public static void main (String[] args)
{
Martian aMartian = new Martian();
Jupiterian aJupiterian = new Jupiterian();
JOptionPane.showMessageDialog
(null, "
[Code] ....
View Replies
View Related
Jun 3, 2014
From the tutorial:instance variables can be declared in class level before or after use.But the code below does not compile. Why?
Java Code:
public class MainApp {
i=5;
public static void main(String[] args) {
System.out.println("Hello World");
}
int i;
} mh_sh_highlight_all('java');
View Replies
View Related
Oct 19, 2014
So the first thing we did was make a program called memory calculator. now we are supposed to make a sub class that modifies the program to also do exponents and natural logs. Then to make a new class that acts as the driver for what is now called the scientific memory calculator which includes the exponent and log. I have watched this through debug and im a little confused. first off it creates a variable for currentValue in current and in sci which are my instances, which i dont think is what i really want to do, I am unsure how to get the things in the Scientificmemcalc to do stuff without calling them directly. so when i try to do the power feature it does everything correct but it sets the sci current value to the correct answer, and now i cant figure out how to pass it on to the current current value.
This is the memory calculator :
public class MemoryCalculator {
public static void main(String[] args) {
MemoryCalculator current = new MemoryCalculator();//creates an instance
int choice = 0;
do{//main loop
System.out.println("Current value: " + current.getCurrentValue() + "
[Code] .....
View Replies
View Related
Aug 9, 2014
I created a superclass Ships and under that a class CivilShips. Under that HumanBulkFreighter.
I declared variables in Ships and CivilShips and wanted to have them set in HBF to a specific value. When I know try to compile them I get the following:
HumanBulkFreighter.java:2: error: <identifier> expected
cargo=1500;
^
HumanBulkFreighter.java:3: error: <identifier> expected
size=200;
[Code] ....
View Replies
View Related
Dec 2, 2014
how to get access from variables in a super class or a subclass. Here is what I got:
1) I have a super class that is in Jar file, I created a link in Eclipse, I know that the link is created correctly, I am going to concentrate just in one variable, so I don’t have to put all the code here firstName; in the super class(the one that is define in the path)
public class CommissionEmployee {
// Field descriptor #6 Ljava/lang/String;
private java.lang.String firstName;
in my class i have 6 argument constructor
View Replies
View Related
Jun 1, 2014
I am just started to learn java and i am facing trouble learning abstract class.
View Replies
View Related
Jun 23, 2014
Do we have constructor in abstract class? If we have then what is the use of it?
View Replies
View Related
Apr 17, 2014
I know whats the interfaces and abstract class and also know that difference between interface and abstract class,but here my doubt is eventhough abstract class more advantage than the interface,then why should we use interfaces and when?
View Replies
View Related
Aug 29, 2014
I passed my abstract class private final reference to another concrete class and I used abstract class reference as parameter to that concrete class constructor and in my main method and null to that parameter then only that program executes correctly...i placing my code below ..if there is any error tell me where is error occurring then i will check my code...i think my code is right but little bit doubt abstract class concept.
{
}
class concept1 extends concept
{
private final concept parent;
public concept1(concept aparent)
{
parent=aparent;
System.out.println(parent);
}
public static void main(String args[])
{
//concept p=new concept1(null);
concept c=new concept1(null);
}}
View Replies
View Related
May 18, 2011
Difference between Abstract class and Interface??
View Replies
View Related
Jul 18, 2014
Why we can't create object of abstract class ,when we can create its constructor?
View Replies
View Related
Feb 21, 2015
I am under the assumption that In the return statement of getReciprocal() method(of the following code), a temporary Number object is created to hold the result of the calculation.
My question is, Number is an abstract class and we are only able to create reference of an abstract class not an object. But then how a temp Number object is created and returned?
class Gen<T extends Number>{
T ob;
Gen(T ob){
this.ob = ob;
}
Number getReciprocal(){ // Number is abstract class
[Code] .....
View Replies
View Related
Aug 28, 2014
in abstract class constructors are not recommended since we don't call it directly ...my doubt is below code is right or wrong...
3public abstract class Concept
4{
5 private String id;
6
7 protected Concept( String anId )
8 {
9 if ( anId == null )
10 {
11 throw new NullPointerException( "id must not be null" );
12 }
13
14 id = anId;
15 }
View Replies
View Related