抽象类定义

1)抽象类
在定又一个类的时候,经常会碰到这样的情况:些方法对于所有的对象都是合适的,但
有些方法只对某个特定类型的对象才有意义。这些方法在这个类中是不能实现的,把这种类
定义为抽象类。
某些类在现实世界中不能直接找到对应的实例。如动物类,不可能为它找到一个对应的
事物,因为现实世界中只有猫、鸟、青蛙等具体动物,而它们都是动物的子类,这样的类称为抽
象类。
抽象类一般没有足够的信息来描述一一个具体的对象。抽象类只用于继承,不能用于创建
对象。一个抽象类一般包括-一个或多个抽象方法(只有方法说明,没有方法体)。

抽象类的子类必须实现其父类定义的每一一 个抽象方法,若没有实现父类的所有抽象方法,
则该子类也应该定义为抽象类。
(1)抽象类的实现
抽象类由abstract 修饰,其格式是:
abstract class类名
类成员定义
抽象类也可以包含非抽象的方法。抽象类具有以下特性:
水①抽象类中不是所有的方法都是抽象方法,可以在抽象类中声明并实现方法。
②抽象类的子类必须实现父类的所有抽象方法后才能实例化,否则这个子类也会成为一一
个抽象类。
③抽象类不能实例化。
④可以定义不包含抽象方法的抽象类,此时该类不能被实例化。
项目中Employee类没有对应的实体,因此可以定义Employee 类为抽象类。为民资路,温
(2 )抽象方法( abstract method)
在Java中,只声明而没有实现的方法称为抽象方法,其语法规则如下:
abstract返回值类型抽象方法名 ([ <形式参数列表> ]);

①定义抽象类Bird, Bird类中有一个属性名称( String 类型)构造函数和一个抽象方法
void Eat()。
abstract class Bird {
String name;
public Bird( String name) {
this. name = name;{
abstract void Eat( );}
②定义继承于Bird 类的Ostrich(鸵鸟)类。
class Ostrich extends Bird {
private String color;
public Ostrich( String color) {
super("鸵鸟");
this. color = color;

System. out. printn(”我的名字是" + super. name +”我的颜色为" + color);

}
void Eat() {
System. out. printn("鸵鸟杂食性,主食草、叶种子、嫩枝、多汁的植物、树根带茎的
花及果实等,此外还有蜥蛇幼鸟、小哺乳动物和一些昆虫等" );}

}

2)接口
一个父类。单继承性使得1
Java 只支持单维承机制,不支持多重继承,即一个类只能有
因多重继承而引起难以预料的

结构简单,层次清楚,易于管理,更加安全可靠,从而避免
突。但在实际应用中也需要使用多重继承的功能。
(1)接口的概念
接口就是方法定义和常量值的集合。接口在语法上和类很
很相似,它也有属性和方法,接口
间也可以形成继承关系。但接口和类有着很大的区别,
它的属性都是常量,方法都是抽象)
法,没有方法体。
接口的使用方法是:首先定义一个接口,可以先把它理解成
个特殊的类,然后在某个类
中要使用这个接口时,就在这个类的定义时声明要实现某个接口。
(2)接口的定义
接口的定义包括接口声明和接口体两部分,格式如下:
[修饰符] < interface> <接口名> [extends父接口列表] 
[ public] [static] [final] 变量名=初始值;//静态常量
[public] [abstraet] 返回值方法名([参数列表]) throws[异常列表]//方法声明
接口的修饰符可以是public或者包访问权限修饰符。当被punlic修饰时,即指明任意类
均可以使用这个接口;当被包访问权限修饰符修饰时,即指明接口只能被与它处在同一包中的
成员访问。extends 子句与类声明中的extends子句基本相同,不同的是一个接 口可以有多个
父接口,中间用逗号隔开,而一个类只能有一个父类。子接口继承父接口中所有的常量和抽象
方法。
接口中的成员变量都是公有的、静态的、最终的常量,接口中定义的方法都是抽象、公有
的,所以修饰符可以省略。在接口中的方法只有定义没有实现,即接口中的方法都是抽象方
法,所以实际上接口就是一种特殊的抽象类。
举例:定义名为BirdAction的接口,其中有一个常量swing,以及两个抽象方法flying( )和
moving( )。
public static final int swing =2;
public abstract void flying( );
public abstract void moving( );
接口有如下特点:

①接口用关键字interface来定义,而不是class
②接口中定义的变量全部是静态变量,而且是最终的静态变量。接口还可以用来实现不
同类之间的常量共享。
③接口中没有自身的构造方法,而且定义的方法都是抽象方法,即只提供方法的定义,而
不提供具体的实现。
④接口采用多重继承机制,而不是采用类的单重继承机制。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值