可以声明抽象类的引用吗?

作者&投稿:善往 (若有异议请与网页底部的电邮联系)
java抽象类中可以声明变量吗?能赋初值吗?~

public class chouDemo {
public static void main(String[] args) {
father s=new son();
s.aaaa(3, "hello");//3和hello就是给形式参数赋值

}
}
abstract class father{
int i=12;
public void aaa(){
int a=1;//实例方法直接赋值
}
public abstract void aaaa(int y,String s);//抽象方法没有方法体,也就是没有成员变量
}
class son extends father{
public void aaaa(int y,String s){
int x=y;
String c=s;
}
}

引用性说明类,我学C++好像没听过
抽象类可以给你解释一下
抽象类的概恋:
抽象类:就是包含有未定义的虚函数的类,也就是说只在类中声明了一个抽象类,但没有具体定义,或者把虚函数定义为virtual void f()=0;这样的形式。注意函数后有一个=0。因此派生类必须实现这个函数,如果派生类没有实现这个函数,则这个派生类也是抽象的。

抽象类为什么不能实例化对象:因为抽象类中包含有没有定义的函数,因此不能用抽象类来实例化对象。但可以声明抽象类的指针指向派生类。

示例:
class A{public: virtual void f()=0;}; //声明一个抽象类
class B:public A{public: void f(){cout<<"B"<<endl;};

void main()
{A ma; //错误,因为类A是抽象类,含有未实现的函数f()。因此不能创建对象
B mb;
A *p=&mb; //可以创建抽象类的指针指向派生类对象。
}

不能生成抽象类的对象,因此只要引用的目标对象不是抽象类对象是可以的。也即可以定义一个抽象类类型的引用名,目标对象是其子类的对象。例如定义一个抽象类A和其子类B如下:
class A
{
public:
A() {}
virtual ~A() {};
virtual int fun() = 0;
};

class B : public A
{
public:
B() { x = 0; };
~B() {};
virtual int fun() { return x++; };
private:
int x;
};

如果声明一个A的引用名a,引用的目标对象是B的对象b,是符合c++语法要求的。也就是下面的代码符合语法要求:
B b;
A& a = b;
int x0 = a.fun();
int x1 = b.fun();
int x2 = a.fun();
如上代码执行完后 x0 = 0, x1 = 1, x2 = 2。


java中的一个抽象类,通过"父类引用指向子类对象"的方法,被实例化之后...
父类的抽象方法是没有语句块的,所以你调用的其实是子类的抽象方法。父类是抽象类,子类继承必须重写父类的抽象方法。否则会报编译错误 \/\/定义一个抽象的父类public abstract class Fu {\/\/抽象方法 public abstract void eat();}\/\/定义一个子类继承父类public class Son extends Fu { \/\/重写...

声明公有的abstract方法的格式是什么
2:抽象类没有构造方法,也没有抽象静态方法。但是可以有非抽象的构造方法 3:抽象类不能被实例化,但是可以创建一个引用变量,类型是一个抽象类,并让它引用非抽象类的子类的一个实例 4:不能用final 修饰符修饰 如:public abstract class T { public abstract void show();} ...

C#中的抽象类是什么东东?它和正常的类有什么区别》
抽象类不能实例化,只能给派生类继承。他没有具体代码。只是几个函数说明。类似接口。他的优点是具有更好的封装型。。

java抽象类与接口 中 相同方法的调用
在上面的程序中,接口MyInterface和抽象类MyClass中均有一个名为m()的无返回类型的函数.当某类继承MyClass类和实现MyInterface接口时,类中的m()方法覆盖了继承自接口的m()方法,相当于重写了这个方法.用接口MyInterface声明一个指向自创类对象的引用.该引用在调用m()方法时调用的是自创类继承自MyClass...

Net中抽象类和接口的区别
通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。1抽象类 (1) 抽象方法只作声明,而不包含实现,可以看成是没有实现体的虚方法 (2) 抽象类不能被实例化 (3) 抽象类可以但不是必须有抽象属性和抽象方法,但是一旦有了抽象...

抽象类和接口的区别
二、两者不同点 1、默认的方法实现 抽象类可以有默认的方法实现;接口,Java8规定可以为接口提供默认实现的方法并且不用强。2、实现 制子类来重写子类使用extends关键字来继承抽象类。如果子类不是抽象类的话,它需要重写抽象类中的抽象方法;接口子类使用关键字implements 来实现接口,它需要重写接口中没...

接口和抽象类的区别是什么?
3.一个类一次可以实现若干个接口,但是只能扩展一个父类 4.接口可以用于支持回调,而继承并不具备这个特点.5.抽象类不能被密封。6.抽象类实现的具体方法默认为虚的,但实现接口的类中的接口方法却默认为非虚的,当然您也可以声明为虚的.7.(接口)与非抽象类类似,抽象类也必须为在该类的基类列表中...

接口和抽象类有什么区别?
抽象类中的成员变量可以被不同的修饰符来修饰。4、概念不同:接口是一种行为规范。抽象类是对象的抽象。1、抽象类不能直接实例化,并且对抽象类使用 new 运算符会导致编译时错误。虽然一些变量和值在编译时的类型可以是抽象的,但是这样的变量和值必须或者为 null,或者含有对非抽象类的实例的引用。2...

java 三种访问修饰符各如何使用?
抽象类的子类如果不希望成为抽象类,那么它就必须去实现父类中所有的抽象方法 抽象类允许定义构造方法 抽象类 只能声明引用 , 不能创建对象 抽象方法不能与static 一起使用 , abstract 类中的方法必须在子类中重写 ,并实现多态 Static 只能继承并重写父类中方法 , 但是不能实现多态 .抽象方法...

c++虚函数的作用是什么?
• 抽象类是不能定义对象的。总结:1、纯虚函数声明如下: virtual void funtion1()=0; 纯虚函数一定没有定义,纯虚函数用来规范派生类的行为,即接口。包含纯虚函数的类是抽象类,抽象类不能定义实例,但可以声明指向实现该抽象类的具体类的指针或引用。2、虚函数声明如下:virtual ReturnType...

仁布县18280916940: 可以声明抽象类的引用吗? -
冀褚龙胆: 不能生成抽象类的对象,因此只要引用的目标对象不是抽象类对象是可以的.也即可以定义一个抽象类类型的引用名,目标对象是其子类的对象.例如定义一个抽象类A和其子类B如下: class A { public:A() {}virtual ~A() {};virtual int fun() = 0; };...

仁布县18280916940: 抽象方法、抽象类怎样声明? -
冀褚龙胆: 抽象方法:[访问权限] abstract 返回类型 方法名([参数表] ); //无方法体该类只提供方法的声明,不提供方法的实现(无大括号)抽象类:[访问权限] abstract class 类名{…}说明:抽象方法必须声明在抽象类中,但抽象类也可以包含具体方法,可以有或没有抽象方法,在抽象类中还可以声明变量;父类中的抽象方法需要在子类中实现,如果子类没有实现抽象方法,则子类也成为抽象类;抽象类不能用new来进行实例化,否则会出现编译错误;但可以声明抽象类的引用,用来指向其具体子类的实例;(请思考其中的理由)

仁布县18280916940: C++ 引用性说明类不能实例化对象 抽象类不能实例化对象 -
冀褚龙胆: 引用性说明类,我学C++好像没听过 抽象类可以给你解释一下 抽象类的概恋: 抽象类:就是包含有未定义的虚函数的类,也就是说只在类中声明了一个抽象类,但没有具体定义,或者把虚函数定义为virtual void f()=0;这样的形式.注意函数后...

仁布县18280916940: java中能不能用抽象类在其他类中声明变量 -
冀褚龙胆: 你是什么意思?public abstract class AC { public abstract void foo(); } public class Test { public static void main(String[] args) { AC ac;//这个当然可以了,只是声明了一个引用,没有实例化 System.out.println(ac == null);//true,ac还是null } }

仁布县18280916940: 抽象类的作用是什么??虚函数的作用是什么?? -
冀褚龙胆: 抽象类指的是含有纯虚函数的类,该类不能建立对象,只能声明指针和引用,用于基础类的接口声明和运行时的多态.另外,如果抽象类的某个派生类在向继承体系的根回溯过程...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网