java 抽象类 对象吗_Java语言(5)【类&对象】-抽象类和抽象方法

一、抽象类、抽象方法

1、抽象类

在面向对象的概念中,所有对象都是通过类来描述的。但是反过来,不是所有类都可以用来描绘对象,如果一个类没有足够的信息来描述一个具体的对象,这个类就是抽象类。

抽象类除了不能实例化对象,其他和普通类完全相同,同样包含成员变量、成员方法和构造方法。

由于抽象类不能实例化对象,所以抽象类必须被继承才能被使用。在java中,一个类只能继承一个抽象类。

java中通过abstract class来定义抽象类:

abstract class A {

pirvate Integer a;

public void A(Integerm) {

a = m;

}

public Integr getA() {

return a;

}

public void prinInfo() {

system.out.pringln(a);

}

........

}

class B extends A {

pirvate Integer b;

public void B(Integer m, Integer n) {

super(m);     //父类的构造函数

b = n;

}

public Integer getB() {

return b;

}

public void prinInfo () {

system.out.pringln("A=" + getA() + "!" + "B=" + getB());

}

........

}

Public class Test {

public void main(String[] args) {

B objB = new B(2, 3);

A objA = new B(4, 5);

objB.prinInfo();

objA.prinInfo();

}

}

如上,函数prinInfo()是重写,两次调用的都是B对象的prinInfo()函数。

1)       尽管A是抽象类,其也有1个成员变量、1个构造方法、2个成员方法。

2)       B从A继承,继承了A的2个成员方法GetA()和PrintInfo(),其中PrintInfo()是重写。由于A的成员变量是Private,B无法继承,但是B仍然后通过Pubilic的getA()方法访问A的成员变量。

2、抽象方法:

抽象方法通过abstract关键字声明:

public abstract void xxxx();

抽象方法只需要方法声明,不需要方法体。

1)   如果一个类包含抽象方法,此类必须必须声明为 abstract 抽象类,否则会导致编译出错。

2)   任何子类必须重写所有抽象方法。否则,这个子类还是抽象类, 而且必须使用 abstract 声明。

3)   构造方法、 static、private 和 final 声明的方法不能是抽象方法,因为这三种方法在子类中 不能覆盖。类似地,final 类中不能有任何 abstract 方法。

4)   就算类中没有 抽象方法,这个类也能声明为 abstract。使用这种方式声明的 abstract 类表明实现的不完整,要交给子类实现。这种类不能实例化。

标签:prinInfo,Java,abstract,抽象,void,抽象类,方法,public

来源: https://www.cnblogs.com/yickel/p/12782222.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值