① java中的抽象类是什么
使用了关键词abstract声明的类叫作“抽象类”。
如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
如果一个类里包含了一个或多个抽象方法,类就必须指定成abstract(抽象)。“抽象方法”,属于一种不完整的方法,只含有一个声明,没有方法主体
② java父类是抽象类,子类一定是抽象类吗
这个没什么问题啊,语法里就是这么规定的呀.
抽象类就是被允许有部分或全部方法实现的.
如果抽象类不能有方法实现,那它不就退化为一个接口(interface)了吗.
建议网络一下抽象类和接口的区别,你就明白了.网上这类文章海量,这里不做复制黏贴的工作了.
③ java 抽象类的派生类,也要是抽象的吗
不是的哟
抽象类的子类不必也是抽象类,但是必须实现抽象父类的所有abstract方法
④ java 子类继承抽象父类 什么情况下子类必须也变成抽象类
只要子类没有把从父类继承的抽象方法全部实现(注意是全部实现),就必须也变成抽象类。
这是因为非抽象类中不能有抽象方法。只要类中有一个抽象方法,类就必须是抽象类。
比如父类有2个抽象方法,子类只实现了父类的1个抽象方法,则子类必须是抽象类。
如果子类把父类的2个抽象方法都实现了,就没必要是抽象类。
判断标准就是,非抽象子类中不能有抽象方法,如果有抽象方法,子类就必须是抽象类。
如果子类添加了自己的抽象方法,子类也必须是抽象类,无论父类是不是抽象类。
⑤ java抽象类的创建及其子类的创建
publicabstractclassFruit{
privateStringname;
privateStringcolor;
publicFruit(Stringname,Stringcolor){
this.name=name;
this.color=color;
}
publicabstractvoidpirntShape();
publicvoidprintInfo(){
System.out.println(name);
System.out.println(color);
}
}
publicclassAppleextendsFruit{
publicApple(Stringname,Stringcolor){
super(name,color);
}
@Override
publicvoidpirntShape(){
System.out.println("Apple");
}
}
publicclassKiwiextendsFruit{
publicKiwi(Stringname,Stringcolor){
super(name,color);
}
@Override
publicvoidpirntShape(){
System.out.println("Kiwi");
}
}
⑥ java的抽象类和父类子类有啥区别
父类和抽象类:
父类是相对来说的,如果B类继承自A类,那么A类就是B类的父类,但是抽象类是一个绝对概念,只要使用abstract关键字声明的类都是抽象类。抽象类不能够直接被实例化,比如C类是抽象类,那么就不能使用new关键字声明C类的对象,只能声明抽象类子类的对象。一般来说,抽象类一定是某些类的父类(否则因为不能声明抽象类的对象,也就不能使用抽象类,当然这也不是绝对的,如果抽象类中的方法都是静态方法,不需要使用实例对象,那么也是可以的),但是父类不一定是抽象类。
子类关系:只要子类没有把从父类继承的抽象方法全部实现(注意是全部实现),就必须也变成抽象类。父类有2个抽象方法,子类只实现了父类的1个抽象方法,则子类必须是抽象类。如果子类把父类的2个抽象方法都实现了,就没必要是抽象类。判断标准就是,非抽象子类中不能有抽象方法,如果有抽象方法,子类就必须是抽象类。如果子类添加了自己的抽象方法,子类也必须是抽象类,无论父类是不是抽象类。
⑦ Java抽象类中的抽象方法的参数对应的子类的方法的参数必须一致吗
同学你这个涉及了两个概念。
一个是抽象方法,一个是方法重载。
先说下概念:
抽象方法就是abstract描述的方法,它本身不含实现,必须由子类实现。
方法重载则是同一个方法名,但是参数类型或者参数个数不同。
理解了这个再看看你的问题。
如果你的子类的“对应的方法”有多个参数,那么,你这个子类的该方法就不是所谓的“对应的方法”了,它是这个方法的重载。
所以,在这种情况下,子类还是必须实现一个和原抽象方法一致的方法。
即是说,“Java抽象类中的抽象方法的参数对应的子类的方法的参数必须一致”
⑧ java 中普通类继承,抽象类继承,接口类继承,子类一定要重写父类中的方法吗
不一定。
1. 普通类继承,并非一定要重写父类方法。
2. 抽象类继承,如果子类也是一个抽象类,并不要求一定重写父类方法。如果子类不是抽象类,则要求子类一定要实现父类中的抽象方法。
3. 接口类继承。如果是一个子接口,可以扩展父接口的方法;如果是一个子抽象类,可以部分或全部实现父接口的方法;如果子类不是抽象类,则要求子类一定要实现父接口中定义的所有方法。
⑨ java继承抽象类与普通类有什么区别
抽象类:
1、抽象类中可以有普通方法,如果想让方法子类必须实现,就弄成抽象方法。
2、如果抽象类中有抽象方法,那么这个类必须定义为抽象类。
3、抽象类不能被new。
普通类:
1、普通类中不能有抽象方法。
2、如果一个普通类实现了一个抽象接口或者抽象类,那么意味着必须重写抽象方法。
⑩ java抽象类
其实狠好理解,因为抽象类包括抽象方法和非抽象方法。
如果父类是一个抽象类,当子类继承父类的时候,要实现抽象的方法,如果不实现的话,那么子类就必须是一个抽象的类。