|
In java, multiple inheritance concept can only be accomplished through interfaces. I do it using the concept of adapter classes.
interface Dog
{
public void bark();
}
interface Cat
{
public void meow();
}
class DogCat implements Dog,Cat
{
public void bark()
{
System.out.println("Barking");
}
public void meow()
{
System.out.println("Meowww");
}
}
public class Hybrid extends DogCat
{
public static void main(String[] args)
{
Hybrid r =new Hybrid();
r.bark();
r.meow();
}
}
|
|
|
|
|
Multiple inheritance for classes is however not supported by Java unfortunately. It is limited for interfaces only. Alternatively, you can use multi level inheritance that gets the same as the features of the multiple ones. Here is a simple trick that you can do to achieve this..
Let the super classes be S1,S2
class A extends S1
{
}
class B extends S2
{
}
class C
{
// write the code here by creating objects for A,B
// This could be good if S1,S2 are abstract and that
// you have implemented the abstract methods in the
// classes A,B. So you can create objects for A,B
// access methods in them (the implemented ones) and // also the normal ones.
}
Gowtham Gutha (http://java-demos.blogspot.com)
|
|
|
|
|
App.java
Thread runnable1 = new Thread(new MyThreadRunnable(), "runnable1");
runnable1.setName(runnable1.getName());
runnable1.start();
MyThreadRunnable.java
public class MyThreadRunnable implements Runnable {
private String name;
public void setName(String name){
this.name=name;
}
public void run() {
System.out.println("Testing MyThreadRunnable"+" "+name);
}
}
Why does line 2 of App.java result in a 'null' for the name member of MyThreadRunnable? Is it not so that I just created a new Thread, passed a Runnable to it and gave it a name? Is it not supposed to be so that the name property should carry the value of Thread's getName()?
I don't understand.
|
|
|
|
|
Simply put you are addressing the Thread method not the MyThreadRunnable method. You could change your code thus and it would work as expected:
MyThreadRunnable runnable = new MyThreadRunnable();
Thread thread = new Thread(runnable, "runnable1");
runnable.setName(thread.getName());
thread.start();
Panic, Chaos, Destruction. My work here is done.
Drink. Get drunk. Fall over - P O'H
OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre
I cannot live by bread alone. Bacon and ketchup are needed as well. - Trollslayer
Have a bit more patience with newbies. Of course some of them act dumb - they're often *students*, for heaven's sake - Terry Pratchett
|
|
|
|
|
You've already set the name to the thread in the constructor itself. Why are you again setting the same.
This works fine. It probably will not return null.
You'll need to call setName() on MyRunnable object and not on Thread object. By the way, the setName() method in MyRunnable object is not at all a name for the thread. It might be just for printing purposes. Do you want it like that only?
Remove runnable1.setName(thread.getName()), try calling the setName() method in the class that you've written (MyRunnable).
It should work! Test once.
Gowtham Gutha (http://java-demos.blogspot.com)
|
|
|
|
|
I've tired to get exact ethernet ip address.
InetAddress ip=InetAddress.getLocalHost();
String iaddr = ip.getHostAddress();
It return localhost address only. I need ethernet address only..
pls help me..
|
|
|
|
|
|
hari301 wrote: I need ethernet address only
You need to explain your problem more fully.
A TCP connection consists for two ends AND of the connections in between.
The fact that two ends connect does NOT mean that meaningful (non-private ip) is available on either end.
The fact that two ends connect does NOT mean that one end can recover a meaningful ip for the other end in such a way that it uniquely identifies the other end.
And of course connections have nothing to do with domain names.
Now some of the above might have something to do with your problem. Or not. But it isn't clear what you think you want (neither here nor your other post.)
|
|
|
|
|
Hi,
i want to create a webservice in JAVA...pls share the code.....
|
|
|
|
|
This sort of question is impossible to answer in a technical forum. If you want to create a web service then you need to do some research into the tools that are available to help you. A search with Google will get you started.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
Please at least try to type "Java Webservice Tutorial" @ Google.
It's so easy that I don't even want to post links here - would be a waste to web space.
|
|
|
|
|
I have a bitmap, such as lena.bmp, which the number of bits per pixel is 8. How can I change the number of bits per pixel?
|
|
|
|
|
Consider the following code:
public class MyThread extends Thread {
@Override
public void run(){
System.out.println("Testing thread.");
}
}
public class App
{
public static void main( String[] args )
{
MyThread thread = new Thread();
}
}
Why does the syntax checker not accept line 5 in 'App.java' (The one with the MyThread Reference Type)? If MyThread is aThread, then why is it incorrect to create a new Thread out of it? I know I'm supposed to replace it with new MyThread, but why is Thread not allowed? Doesn't 'extend' mean 'inherits all properties etc.'?
|
|
|
|
|
CsTreval wrote: If MyThread is aThread, then why is it incorrect to create a new Thread
out of it?
Your code is stating that 'Thread' is a 'MyThread' which it isn't.
The correct code would be..
Thread thread = new MyThread();
|
|
|
|
|
You should be creating the same type as you have declared thus:
MyThread thread = new MyThread();
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
Yes, but there is also polymorphism as jschell said: Thread thread = new MyThread. I just got the assignment backwards. To me it is more logical to think of a=b instead b=a.
|
|
|
|
|
Thread thread = new MyThread();
...works, cause Thread is the parental to MyThread .
Using that leaves you with the basic functionality that is given in Thread (unless you cast Thread to a MyThread, then you'll be able to access the additional functions).
You could add additional functionality to any Object when you extend it - which is the basic meaning of extension.
So when initializing the Object you will have to choose the right one - the parental Object does not own the additional methods, does not know them.
You would not be able to access them.
Example:
public class Vehicle{
}
public class Bus extends Vehicle{
public int getSeatQuantity(){
}
}
A vehicle can be anything from a bike up to a race car, truck, even a train.
It's not important for a bicycle or a race car how many seats it has. But it's important for a bus.
So when you want a Bus (...and later probably know how much seats are available) you will have to create a Bus and not just a Vehicle .
Simple said: it's more specific.
|
|
|
|
|
You've got the idea now, but consider this as another way of looking at it:
a MyThread is a Thread and then some. If you had added extra class members - code or data - in the definition of MyThread , it would have stood out like the proverbial.
Another clue is in Java's use of the keyword extends .
Cheers,
Peter
Software rusts. Simon Stephenson, ca 1994. So does this signature. me, 2012
|
|
|
|
|
A super class reference variable has the capability to hold its sub class object but a sub class does not have that capability.
As MyThread is subclass of Thread, you can write
Thread t=new MyThread();
But not
MyThread m=new Thread();
That's false.
|
|
|
|
|
Hi! every body i am very new to this and i need an help to start implementation of my idea
i need an application that has to the following things
1.it has to store all messages that came to my mobile
2.store them in a database the msg contains a mobilenumber date time and msg text
3.shedule and send them to that number at that time and date given in msg through my mobile number
please help if it possible any one has a solution
sagaram
|
|
|
|
|
Nothing that would make it implicitly impossible although running a database on a mobile without qualifying both of those is unlikely to be generally true.
ask.sagaram wrote: any one has a solution
Solution
1. Investigate mobiles
2. Investigate databases on those mobiles
3. Pick a mobile and database (from 1 and 2)
4. Learn how to code database code on a mobile
5. Learn how java networking works and probably networking in general
6. Learn how SMS works.
7. Learn how SMS works on a mobile (which probably goes back to 1.)
8. Write code to do SMS for the mobile.
9. Combine all of the above into an application.
|
|
|
|
|
|
Hi
I have to display a DIB image in java applet through AWT Native interface. I have been able to play a live video using this technology but drawing an image is taking too long especially when the conversion of a DIB image is very difficult.
Any help in this regard would be helpful
|
|
|
|
|
I don't know if this might sound silly, but is it possible to interact with hardware(say an audio card in my case) using Java.
The master of the art of living makes little distinction between his work and his play, his labor and his leisure, his mind and his body, his education and his recreation, his love and his religion. He hardly knows which is which; he simply pursues his vision of excellence in whatever he does, leaving others to decide whether he is working or playing. To him he is always doing both.
|
|
|
|
|
Yes, it is possible. However, without a lot more information it's impossible to suggest much more than that. If you have a specific question then please update your post above with the details.
One of these days I'm going to think of a really clever signature.
|
|
|
|