Why is this valid boolean b = new A() instanceof A; if A is an abstract class? [on hold]Java abstract class namingWhy should I declare a class as an abstract class?Why should a class be anything other than “abstract” or “final/sealed”?Java's Boolean class - why not an enum?Why 'List<E>' is an 'interface' but not 'abstract class'?Is there an alternative to instanceof when filtering a Java stream by class?What is the rule for nested loop code?Why override a static method of an abstract base class?When and why would you put a new method into an interface instead of an abstract base class?Avoiding instanceof vs abstract God Class. Do I have an alternative?
LWC and complex parameters
How did the USSR manage to innovate in an environment characterized by government censorship and high bureaucracy?
Does it makes sense to buy a new cycle to learn riding?
How to deal with fear of taking dependencies
Can the Produce Flame cantrip be used to grapple, or as an unarmed strike, in the right circumstances?
What is the command to reset a PC without deleting any files
Ideas for 3rd eye abilities
Why do we use polarized capacitors?
What is it called when oen voice type sings a 'solo?'
Can I find out the caloric content of bread by dehydrating it?
New order #4: World
Could a US political party gain complete control over the government by removing checks & balances?
Shall I use personal or official e-mail account when registering to external websites for work purpose?
Is it legal to have the "// (c) 2019 John Smith" header in all files when there are hundreds of contributors?
What are the advantages and disadvantages of running one shots compared to campaigns?
Are objects structures and/or vice versa?
What is the meaning of "of trouble" in the following sentence?
Check if two datetimes are between two others
Does bootstrapped regression allow for inference?
Why do UK politicians seemingly ignore opinion polls on Brexit?
How to answer pointed "are you quitting" questioning when I don't want them to suspect
How is it possible for user's password to be changed after storage was encrypted? (on OS X, Android)
Is domain driven design an anti-SQL pattern?
What is the offset in a seaplane's hull?
Why is this valid boolean b = new A() instanceof A; if A is an abstract class? [on hold]
Java abstract class namingWhy should I declare a class as an abstract class?Why should a class be anything other than “abstract” or “final/sealed”?Java's Boolean class - why not an enum?Why 'List<E>' is an 'interface' but not 'abstract class'?Is there an alternative to instanceof when filtering a Java stream by class?What is the rule for nested loop code?Why override a static method of an abstract base class?When and why would you put a new method into an interface instead of an abstract base class?Avoiding instanceof vs abstract God Class. Do I have an alternative?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
I have trouble understanding why this boolean b = new A() instanceof A;
is a valid statement and not boolean b = new A() instanceof A;
and why the former is true knowing that A is an abstract class.
java object-oriented
New contributor
put on hold as off-topic by gnat, Bart van Ingen Schenau, David Arno, amon, Deduplicator Apr 5 at 10:06
This question appears to be off-topic. The users who voted to close gave this specific reason:
- "Questions asking for assistance in explaining, writing or debugging code are off-topic here. These can be asked on Stack Overflow if they include the desired behavior, a specific problem or error, and the shortest code necessary to reproduce it in the question (see Minimal, Complete, and Verifiable Example)." – gnat, amon, Deduplicator
add a comment |
I have trouble understanding why this boolean b = new A() instanceof A;
is a valid statement and not boolean b = new A() instanceof A;
and why the former is true knowing that A is an abstract class.
java object-oriented
New contributor
put on hold as off-topic by gnat, Bart van Ingen Schenau, David Arno, amon, Deduplicator Apr 5 at 10:06
This question appears to be off-topic. The users who voted to close gave this specific reason:
- "Questions asking for assistance in explaining, writing or debugging code are off-topic here. These can be asked on Stack Overflow if they include the desired behavior, a specific problem or error, and the shortest code necessary to reproduce it in the question (see Minimal, Complete, and Verifiable Example)." – gnat, amon, Deduplicator
add a comment |
I have trouble understanding why this boolean b = new A() instanceof A;
is a valid statement and not boolean b = new A() instanceof A;
and why the former is true knowing that A is an abstract class.
java object-oriented
New contributor
I have trouble understanding why this boolean b = new A() instanceof A;
is a valid statement and not boolean b = new A() instanceof A;
and why the former is true knowing that A is an abstract class.
java object-oriented
java object-oriented
New contributor
New contributor
New contributor
asked Apr 5 at 1:19
Dr.StoneDr.Stone
192
192
New contributor
New contributor
put on hold as off-topic by gnat, Bart van Ingen Schenau, David Arno, amon, Deduplicator Apr 5 at 10:06
This question appears to be off-topic. The users who voted to close gave this specific reason:
- "Questions asking for assistance in explaining, writing or debugging code are off-topic here. These can be asked on Stack Overflow if they include the desired behavior, a specific problem or error, and the shortest code necessary to reproduce it in the question (see Minimal, Complete, and Verifiable Example)." – gnat, amon, Deduplicator
put on hold as off-topic by gnat, Bart van Ingen Schenau, David Arno, amon, Deduplicator Apr 5 at 10:06
This question appears to be off-topic. The users who voted to close gave this specific reason:
- "Questions asking for assistance in explaining, writing or debugging code are off-topic here. These can be asked on Stack Overflow if they include the desired behavior, a specific problem or error, and the shortest code necessary to reproduce it in the question (see Minimal, Complete, and Verifiable Example)." – gnat, amon, Deduplicator
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
The instanceof A
has nothing to do with whether the statement is valid or not, so your question is simpler if you leave it off from both statements:
A a = new A() ;
A a = new A();
The second statement isn't valid because A
is abstract and you can't call new
on any abstract class. If you could instantiate it, it would be an instance of A
, but you can't.
The first statement is valid because it creates an anonymous class that extends A
. This anonymous class isn't abstract (assuming A
doesn't define any abstract methods), and so it can be instantiated. It's an instance of A
because all subclasses are instances of their parent classes, abstract or not. It's basically a shortcut for saying:
public class AnonymousNameIDontCareAbout extends A
A a = new AnonymousNameIDontCareAbout();
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
The instanceof A
has nothing to do with whether the statement is valid or not, so your question is simpler if you leave it off from both statements:
A a = new A() ;
A a = new A();
The second statement isn't valid because A
is abstract and you can't call new
on any abstract class. If you could instantiate it, it would be an instance of A
, but you can't.
The first statement is valid because it creates an anonymous class that extends A
. This anonymous class isn't abstract (assuming A
doesn't define any abstract methods), and so it can be instantiated. It's an instance of A
because all subclasses are instances of their parent classes, abstract or not. It's basically a shortcut for saying:
public class AnonymousNameIDontCareAbout extends A
A a = new AnonymousNameIDontCareAbout();
add a comment |
The instanceof A
has nothing to do with whether the statement is valid or not, so your question is simpler if you leave it off from both statements:
A a = new A() ;
A a = new A();
The second statement isn't valid because A
is abstract and you can't call new
on any abstract class. If you could instantiate it, it would be an instance of A
, but you can't.
The first statement is valid because it creates an anonymous class that extends A
. This anonymous class isn't abstract (assuming A
doesn't define any abstract methods), and so it can be instantiated. It's an instance of A
because all subclasses are instances of their parent classes, abstract or not. It's basically a shortcut for saying:
public class AnonymousNameIDontCareAbout extends A
A a = new AnonymousNameIDontCareAbout();
add a comment |
The instanceof A
has nothing to do with whether the statement is valid or not, so your question is simpler if you leave it off from both statements:
A a = new A() ;
A a = new A();
The second statement isn't valid because A
is abstract and you can't call new
on any abstract class. If you could instantiate it, it would be an instance of A
, but you can't.
The first statement is valid because it creates an anonymous class that extends A
. This anonymous class isn't abstract (assuming A
doesn't define any abstract methods), and so it can be instantiated. It's an instance of A
because all subclasses are instances of their parent classes, abstract or not. It's basically a shortcut for saying:
public class AnonymousNameIDontCareAbout extends A
A a = new AnonymousNameIDontCareAbout();
The instanceof A
has nothing to do with whether the statement is valid or not, so your question is simpler if you leave it off from both statements:
A a = new A() ;
A a = new A();
The second statement isn't valid because A
is abstract and you can't call new
on any abstract class. If you could instantiate it, it would be an instance of A
, but you can't.
The first statement is valid because it creates an anonymous class that extends A
. This anonymous class isn't abstract (assuming A
doesn't define any abstract methods), and so it can be instantiated. It's an instance of A
because all subclasses are instances of their parent classes, abstract or not. It's basically a shortcut for saying:
public class AnonymousNameIDontCareAbout extends A
A a = new AnonymousNameIDontCareAbout();
answered Apr 5 at 3:36
Karl BielefeldtKarl Bielefeldt
121k32217415
121k32217415
add a comment |
add a comment |