关于抽象类不能被实例化的理解问题 抽象类不能被实例化,但是其非抽象子类被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; } }楼主说的 是正确的抽象类中的构造方法就是用于 其非抽象子类 实例化的 关于鼠标移动的侦听 下面的xml文件怎么读? 关于线程方面的问题 一个进制转换的小算法看不懂 <sql:query>怎么实现类似first,last,next功能?<c:forEach>好象要历遍 急~~急~大家快帮哈忙!谢谢 使用AWT,创建一个TextField类的对象,如何实现文本的对齐方式? 求助:简单的Aglet,getArg调用,陷住一周了,无法继续。急。。。 java调用VC写的ActiveX控件问题 Apache+Resin4.0发布JSP 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;
}
}
楼主说的 是正确的
抽象类中的构造方法就是用于 其非抽象子类 实例化的