これはうまくいきます。
package abstracttest;
public abstract class AbstractClass implements NewInter {
public abstract void doStuff();
public void doStuff2() {
System.out.println("in doStuff2");
}
/*
* public static void main(String a[]) { AbstractClass ab = new
* AbstractClass() {
*
* @Override public void doStuff() { // TODO Auto-generated method stub
* System.out.println(" doStuff "); }
*
* @Override public void doInter() { // TODO Auto-generated method stub
*
* } };
*
* ab.doStuff2(); ab.doStuff();
*
* NewInter ni = new NewInter() {
*
* @Override public void doInter() { // TODO Auto-generated method stub
* System.out.println("do Inter"); }
*
* }; ni.doInter();
*
* AbstractClass ab1 = new AbstractClass(); }
*/
}
interface NewInter {
String con = "Hell";
void doInter();
}
class Impl extends AbstractClass {
@Override
public void doInter() {
// TODO Auto-generated method stub
}
@Override
public void doStuff() {
// TODO Auto-generated method stub
}
public static void main(String[] s) {
AbstractClass ab = new AbstractClass() {
@Override
public void doInter() { // TODO Auto-generated method stub
System.out.println("impl doInter");
}
@Override
public void doStuff() { // TODO Auto-generated method stub
System.out.println("impl doStuff");
}
};
ab.doInter();
ab.doStuff();
NewInter ni1 = new NewInter() {
@Override
public void doInter() {
// TODO Auto-generated method stub
}
};
ni1.doInter();
}
}
と の両方を抽象クラス内から、abstract class
およびからインスタンス化することができました。
これはどのように可能ですか?
例外が発生することを予期していましたが、呼び出しは正しく機能しました。
誰か現象を説明してくれませんか? 私は混乱しています。interface
main()
class Impl
Java 抽象クラスもインスタンス化できませんが、main() が存在する場合は呼び出すことができます。
これはブログで読みました。どういう意味ですか?
また、抽象クラスのコンストラクターを呼び出す他の方法はありますか? あれば教えてください。