关于抽象类不能被实例化的理解问题 抽象类不能被实例化,但是其非抽象子类被NEW出来的时候依然能调用父类的构造方法是么?另外是不是可以说抽象类中非抽象的方法和变量都可以被子类所调用,只要不去NEW这个抽象类本身就可以了?谢谢大家! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 子类被new出来不就是要调用父类的构造方法吗?如果父类中非抽象的方法和变量被继承下来,当然可以用他们了。 子类是可以调用抽象类的非抽象构造函数。子类也可以调用抽象类中的非抽象方法!就是不能去new它~! 构造函数没有抽象的吧!抽象类中非抽象的方法和变量除了private修饰的都可以被子类所调用! 抽象类可以有构造方法,是给子类用的,子类可以用super()调用父类的构造方法如果一个类里有抽象的方法这个类必须是抽象类,不能创建对象但反过来说是错的子类中拿一个有实现的方法覆盖父类中没有实现的方法叫实现父类中的的所有抽象方法必须被子类中的方法全部实现(这里的子类不是抽象的)抽象的方法把声明和实现分离,留给子类去实现 抽象類不能被實例話是可以理解的,因為它的抽象方法知識提供一種接口,一種標準,來表達一下我的子類應該具有怎樣的能力。至于他們這些能力有多大,抽象類本身就不管了。抽象類的子類如果不是抽象類的話,可以被實例話,子類可以overloead或者overwrite父類的方法。至于父類的變量要區分很多情況。 public class AbstractClass extends abstr{ /** * @param args */ public static void main(String[] args) { AbstractClass ab = new AbstractClass();//抽象类不能被实例化,但是其非抽象子类被NEW出来的时候依然能调用父类的构造方法 System.out.println(ab.i); ab.method2();//抽象类中非抽象的方法和变量都可以被子类所调用 ab.setIi(1); System.out.println(ab.getIi()); } @Override void method1() { System.out.println("method1"); }}abstract class abstr { private int ii = 8; int i = 7; abstract void method1(); public void method2(){ System.out.println("method2"); } public int getIi() { return ii; } public void setIi(int ii) { this.ii = ii; } }楼主说的 是正确的抽象类中的构造方法就是用于 其非抽象子类 实例化的 JAVA 执行批处理 错误信息获取 帮忙做个简单的效果!!!!!!!!!!! 求救这个多线程程序。是不是这里没有多线程的高手??? 各位有没有做过JAVA读写CAN方面的? 急求 JSP 显示数据库信息页面的解决 怎样获得系统cpu队列长度,用什么函数? 在类中的方法,方法头只写一个static 就能过,我不清楚是怎么回事?内有原码,谢谢! 关于Applet中的双缓存,求教! 2个小问题! jbuilder6好像占的系统资源很多? continue提问 2本关于 Eclipse 的书不知道买那本好,大家帮忙看看。
如果父类中非抽象的方法和变量被继承下来,当然可以用他们了。
抽象类中非抽象的方法和变量除了private修饰的都可以被子类所调用!
如果一个类里有抽象的方法这个类必须是抽象类,不能创建对象
但反过来说是错的
子类中拿一个有实现的方法覆盖父类中没有实现的方法叫实现
父类中的的所有抽象方法必须被子类中的方法全部实现(这里的子类不是抽象的)
抽象的方法把声明和实现分离,留给子类去实现
public class AbstractClass extends abstr{ /**
* @param args
*/
public static void main(String[] args) {
AbstractClass ab = new AbstractClass();//抽象类不能被实例化,但是其非抽象子类被NEW出来的时候依然能调用父类的构造方法
System.out.println(ab.i);
ab.method2();//抽象类中非抽象的方法和变量都可以被子类所调用
ab.setIi(1);
System.out.println(ab.getIi()); } @Override
void method1() {
System.out.println("method1");
}}abstract class abstr {
private int ii = 8;
int i = 7;
abstract void method1();
public void method2(){
System.out.println("method2");
} public int getIi() {
return ii;
} public void setIi(int ii) {
this.ii = ii;
}
}
楼主说的 是正确的
抽象类中的构造方法就是用于 其非抽象子类 实例化的