java抽象类

来源:互联网 发布:新浪java面试题 编辑:程序博客网 时间:2024/06/04 19:33

概念:在面向对象的世界里,所有的对象都是通过类来实例化的,但并不是所有的累都使直接用来实例化对象的,如果一个类中没有包含足够的信息来描述一个具体的事务,这样的类可以形象成抽象类。

java中提供了一种专门供子类来继承的类,这个类就是抽象类,其语法形式如下:

abstract class 类名{

}

java也提供了一种特殊的方法,这个方法不是一个完整的方法,只包含有方法的声明,没有方法体,这样的方法叫做抽象方法,其语法形式如下:

其他修饰符 abstract 返回值 方法名();


例子:

package com.bd.zuche;


public class TestAbstract {
public static void main(String[]args)
{
Person chinese=new Chinese();
chinese.speak();
chinese.work();

Person american=new American();
american.speak();
american.work();
}
}
abstract class Person{

String name="人";
String color="肤色";

public abstract void speak();//没有方法体,用于在子类中实现
public abstract void work();
}
class Chinese extends Person{
String houseHold="北京";


public String getHouseHold()
{
return houseHold;
}
public void speak()
{
System.out.println("中国人说汉语");
}
public void work()
{
System.out.println("中国人勤劳勇敢");
}
}
class American extends Person{
String houseHold="美国";
public String  getHouseHold()
{
return houseHold;
}
public void speak()//子类中必须实现父类中定义的方法
{
System.out.println("美国人说英语");
}
public void work()
{
System.out.println("美国人勤劳的工作");
}
}

结果:


抽象类的特征:

(1)抽象类不能被直接实例化,例如上面语句写成Person chinese =new Person(); 编译时会报错

(2)抽象类的子类必须实现抽象方法,除非子类也是抽象类。

(3)抽象类里可以有普通方法,也可以有抽象方法,但抽象方法的类必须是抽象类。

0 0
原创粉丝点击