Java中抽象类的具体类为什么可以创建对象调用父类(抽象类)中的方法呢?

public class DateFormatDemo {
public static void main(String[] args) {
// Date -- String
// 创建日期对象
Date d = new Date();
// 创建格式化对象
// SimpleDateFormat sdf = new SimpleDateFormat();
// 给定模式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
// public final String format(Date date)
String s = sdf.format(d);
System.out.println(s);
}
}
sdf.format();
sdf是具体类对象
format是DateFormat抽象类的方法

这是java的特性:继承

java有三大特性,封装,继承,多态。建议好好在网上看看什么是继承。追问

你都不明白我那段代码的意思,继承它一般是子类重写父类,然后用的其实还是子类的方法,但是我那段代码不一样,他是子类没有的方法,而用的是子类对象调用父类方法。

追答

子类继承父类,就会拥有父类所有的属性方法(private除外),重写是覆盖了父类的方法。

追问

明白了,只是一个单纯的继承作用而已,我想复杂了。

温馨提示:内容为网友见解,仅供参考
无其他回答

在java中实例化一个子类对象赋给父类对象引用或一个实现了接口的类的...
简单的说,建立一个父类的对象,它的内容可以是这个父类的,也可以是它的子类的,当子类拥有和父类同样的函数,当使用这个对象调用这个函数的时候,定义这个对象的类(也就是父类)里的同名函数将被调用,当在父类里的这个函数前加virtual关键字,那么子类的同名函数将被调用。例子在C++中:class A {...

JAVA问题,父类为抽象类,子类继承父类后,为什么还要把抽象类的方法重写...
抽象类可以没有抽象方法,也可以全部是抽象方法,如果子类继承的父类是抽象类,子类必须重写父类里所有的(是所有的)抽象方法,才能被实例化,也就是创建对象,要不然子类也将是个抽象类,抽象类不能被实例化(考试里选择题经常出现)

Java中 什么情况下使用接口?什么情况下使用抽象类?
一、理解抽象类abstract class和interface在java语言中都是用来进行抽象类(本文中的抽象类并非从abstract class翻译而来,它表示的是一个抽象体,而abstract class为java语言中用于定义抽象类的一种方法,请读者注意区分)定义的,那么什么是抽象类,使用抽象类能为我们带来什么好处呢?在面向对象的概念中,我们知道所有的对象都...

java 中抽象类虽然不能够创建对象,但是可以有构造方法,构造方法也可 ...
1.首先你要搞清楚java里new这个关键字,new说的是要调用构造方法,分配内存空间,创建实例,这是显示的new出来一个对象,抽象类是不允许new的,但是抽象类可以有构造方法,我们知道通常创建类的实例需要new 类();这种形式,但是只能说new调用构造方法才是创建对象,而抽象类不可以有实例,但是可以调用构造...

在java中,什么是抽象类和抽象方法,创建有何作用
对象不能由抽象类直接创建,只可以通过抽象类派生出新的子类,再由其子类来创建对象。当一个类被声明为抽象类时,要在这个类前面加上修饰符abstract。 在抽象类中的成员方法可以包括一般方法和抽象方法。抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据类型、方法名称和所需的参数,没有方...

java 中的父类和子类都是抽象类,那么子类需要把父类中的抽象方法重新抄...
第二个问题,我觉得你的问题有点描述不清。是抽象类作为父类被继承非抽象类还是从非抽象类继承出抽象类?如果是前者我觉得是可以的,抽象类可能仅仅是因为该类中含有抽象方法,所以是抽象类。在被继承之后,子类中可以对抽象方法重写,从而变为非抽象类。第二种么,你自己已经知道了。也是可以的。

java的接口和抽象类分别有什么作用?
在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和interface的选择显得比较随意。其实...

在Java中,abstract使用的场合?各有什么作用?
举个简单的例子下面有一个抽象类 abstract class E{ public abstract void show();\/\/public abstract 可以省略 } 然后其它类如果继承它通常为了实现它里面的方法 class F extends E{ void show(){ \/\/写具体实现的代码 } } 最后再主方法里面定义一个父类引用指向子类对象,就会发生多态现象,比如 E ...

JAVA问题:抽象类 变量名=new 类名(): 父类 变量名=new 子类()为什么...
比如cal1是父类对象,cal2、cal3是子类对象 ———三个对象都有一个同名方法 现在你用cal1.function()调用该方法,如果cal2复制给了cal1那么调用的是cal2的方法,如果是cal3赋给了cal1,调用的是cal3的方法。这样就是想了运行时的多态……另外,当你想要用其他对象的方法时,你只需更改赋值(...

java 面试题
另一种情况就是Java允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用throw关键字引发异常。所有的异常都是 java.lang.Thowable的子类。 2. Java的接口和C++的虚类的相同和不同处。 由于Java不支持多继承,而有可能某个类或对象要使用分别在几个类或对象里面的方法或属性,现有的单继承机制...

相似回答
大家正在搜