‘壹’ java中抽象类一般什么时候用到,用抽象类有
我有用过抽象类的地方是:比如android有很多的标签,然后只是数据源不一样,界面都是公用的,这时候就可以抽象一个父类,父类做一些公用的东西,子类需要重写的就拿来重写。这里要用接口的话,就有点大材小用了。abstract class在Java语言中体现了一种继承关系,要想使得 继承关系合理,父类和派生类之间必须存在"is-a"关系,即父类和派生类在概念本质上应该是相同的。对于interface来说则不然,并不要求interface的实现者和interface定义在概念本质上是一致的, 仅仅是实现了interface定义的契约而已。为了使论述便于理解,下面将通过一个简单的实例进行说明。
‘贰’ java中抽象类 具体是干什么 有什么作用
抽象类、就是一个用abstract修饰的类,在这个类中、你可以定义一些不需要具体实现的方法、也就是没有方法体的方法、这些方法叫做抽象方法、当一个类要继承这个抽象类时、就必须要实现这些抽象方法、。当你在做一个比较复杂的项目时、一些简单的方法就可以马上写出来、但一些复杂的方法、在不同的类中需要不同的实现、那么这个时候就需要用到抽象类的。。。
‘叁’ JAVA中的抽象类
抽象是java的特性之一,也是处理对象复杂性的一种技术!它是指只关注对象的重要细节,忽略次要细节!
在抽象类中定义的抽象方法,是由子类去实现,而不是去覆盖,因为在父类中没有具体的实现!
举一个例子:
父类:
abstract
class
MyClass
{
abstract
void
display(String
str);
}
子类:
abstract
class
MyChild
extends
MyClass
{
void
display(String
str)
{
.....
}
void
method1()
{
....
}
void
method2()
{
....
}
........
}
这个时候我需要用到display方法,其他的都不用!我们可以这样做:
MyClass
mc
=
new
MyChild();
mc.display();
我们声明的是一个父类类型的引用,只需要记住父类中有这个方法的声明,不用管它子类怎么去实现,而且看都不用看method1,method2...我们可以把精力都集中在父类!如果只有一个单纯的子类,很可能需要去看他的其他方法,尤其是当display与其他方法有关联的时候!有了这样一个抽象的父类,就可以省去这些精力,只需要知道父类有这个方法就行了!(或许这些在小程序中体现得并不很明显)
以上都是个人的理解,有不对的地方,还希望大家指正!
‘肆’ Java抽象类是什么概念
JAVA的抽象类其实和她的普通类在表示实现概念的东西没多大区别,不要因她带有抽象这个形容词就觉得比她的普通类理解起来复杂.
个人的理解是
所谓的抽象类呢,就是带有抽象方法的类.
所谓的抽象方法就像是一种写代码的规范.
抽象方法没有方法体
抽象方法可以有参数列表
抽象方法用abstract修饰
抽象方法的访问修饰分别为 public、protected、default(缺省 不用写)
加深了解抽象类
/*理解JAVA抽象类
* 1.抽象类不能被实例化.
* 2.抽象类有构造器,且他的构造在他的子类被实例化时被调用的顺序和普通类调用的顺序是一样的(先父后子).
* 3.抽象类内部的方法可以不是抽象方法,也就是说抽象类内部可以有具体的方法.
* 4.抽象类的抽象方法属于一种不完整的方法,只含有声明和定义,没有方法主体.
* 5.如果抽象的某个子类是普通类(非abstract类型的类),那么该子类必须Override抽象类中所有的抽象方法.
* 6.抽象类的子类也是抽象类的话,那么该子类既可以Override父类中的方法,也可以不Override父类中的方法.
* 7.普通类中不能定义抽象方法.
* 8.static不能修饰抽象方法
* 备注:为了方便理解,所谓的普通是指如下形式定义的类
* public class X{} 或 class A XX{}
* */
‘伍’ 写个JAVA抽象类
packagecom.fish;
publicabstractclassFish{
privateStringcolor;
privateStringsize;
//游泳
publicabstractvoidswiming();
//呼吸
publicabstractvoidheart();
//被参观
publicabstractvoidvisited();
//吃草
publicabstractvoideat();
publicStringgetColor(){
returncolor;
}
publicvoidsetColor(Stringcolor){
this.color=color;
}
publicStringgetSize(){
returnsize;
}
publicvoidsetSize(Stringsize){
this.size=size;
}
}
‘陆’ java抽象类
其实狠好理解,因为抽象类包括抽象方法和非抽象方法。
如果父类是一个抽象类,当子类继承父类的时候,要实现抽象的方法,如果不实现的话,那么子类就必须是一个抽象的类。
‘柒’ java 抽象类定义
package wenti;
abstract class MyAnimal {//抽象类
private String type;
MyAnimal(String str){//构造方法
type = str;
}
public abstract void voice();//抽象方法
}
class MyDog extends MyAnimal{//MyDog继承MyAnimal
private String name;
MyDog(String str,String n) {//构造方法
super(str);
name = n;
// TODO Auto-generated constructor stub
}
public void voice(){//实现抽象类中的抽象方法
System.out.println("the voice of a dog.");
}
}
class MyCat extends MyAnimal{
private String name;
MyCat(String str,String n){
super(str);
name = n;
}
public void voice(){
System.out.println("the voice of cat.");
}
}
public class Cx3110{
public static void main(String[] args){
MyAnimal dog = new MyDog("狗","旺财");//创建一个MyAnimal对象,并用MyDog实例化
dog.voice();//调用方法
MyAnimal cat = new MyCat("猫","旺运");//创建一个MyAnimal对象,并用MyCat实例化
cat.voice();
}
}
‘捌’ Java中的抽象类是什么
使用了关键词abstract声明的类叫作“抽象类”。
如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
如果一个类里包含了一个或多个抽象方法,类就必须指定成abstract(抽象)。“抽象方法”,属于一种不完整的方法,只含有一个声明,没有方法主体
‘玖’ Java 抽象类
抽象类里面只要要有一个 abstract的方法;
abstractclassA{
();
}
‘拾’ JAVA抽象类可以继承抽象类
您好,提问者:
1、抽象类只是一个特殊的类,但是也具备类的特性。
2、如果这个类中有抽象方法,那么这个类必须定义为抽象类。
3、如果这个抽象类继承了别的抽象类,那么可以不覆盖抽象方法。
因为:这个抽象类也是抽象的,没办法实现方法体。
例如一下代码:
abstractclassA{
abstractvoidadd();
publicvoiddelete(){}
}
abstractclassBextendsA{
//继承了抽象A类,因为也是抽象的,可以不写抽象方法,当然也可以重写抽象方法(切记抽象方法是没有方法体的)
//abstractvoidadd();//也是没有问题的
abstractvoidgetXX();
}
publicclassCextendsB{
//必须实现抽象方法
//继承了B,也就继承了A,AB方法都有,所以必须重写这两个抽象类的抽象方法
publicvoidadd(){}
publicvoiddelete(){}
publicvoidgetXX(){}
}