面向对象五

一、抽象类和接口
1、抽象类
Java允许在定义方法时不写方法体,不包含方法体的方法为抽象方法,抽象方法必须 使用 * abstract *关键字来修饰。

abstract  void  shout();      //  定义抽象方法shout()

:包含抽象方法的类必须声明为抽象类,但抽象类可以不包含任何抽象方法,只需使用abstract关键字来修饰即可。另外,抽象类是不可以被实例化的,因为抽象类中有可能包含抽象方法,抽象方法是没有方法体的,不可以被调用。如果想调用抽象类中定义的方法,则需要创建一个子类,在子类中将抽象类中的抽象方法进行实现。

例:如何实现抽象类中的方法

 //定义抽象类Animal
 
abstract class Animal {

 //定义抽象方法shout ()

   abstract void shout () ;

}

  //定义Dog类继承抽象类Animal

class Dog extends Animal {
 
//实现抽象方法shout ()

    void shout() {

         System. out.println(“注汪....”);
             
             }
     
     }

//定义测试类

public class Example10 {

    public static void main(String[] args) {

       Dog dog= new Dog();      //创建 Dog类的实例对象

       dog.shout();       //调用dog对象是的shout()方法

                }
     }

二、接口

如果一个抽象类中所有方法都是抽象的,则可以将这个类用另一种方式来定义,即 接口。
在接口定义时,需要使用interface关键字来声明。
例:
interface Animal {
int ID=1; //定义全局常量
void breathe(); // 定义抽象方法
void run();
}
: (1)、接口中定义的方法默认使用“public abstract”来修饰
(2) 、接口中的变量默认使用“public final”来修饰。即全局变量。
由于接口中的方法都是抽象方法,因此不能通过实例化对象的方式来调用接口中的方法。此时需要一个定义类,并使用implements关键字实现接口中所有的方法。

2、接口的特点

  • 接口中的方法都是抽象的,不能实例化对象。

  • 需要实现接口中的所有方法。

  • 一个类通过implements关键字实现接口时,可以实现多个接口,被实现的多个接口之间要用逗号隔开。
    具体示例如下:

    interface Run {

    程序代…

    interface Fly {

    程序代码…

    class Bird implements Run,Ely (

    程序代码…

    }

  • 一个接口可以通过exeds关键字继承多个接口,接口之间用逗号隔开。
    例如下:
    interface Running {
    程序代码…

    interface Flying {
    程序代码…

    Interface Eating extends Running,Flying {
    程序代码…

  • 一个类在继承另一个类的同时还可以实现接口,此时,extends关键字必须位于
    implements关键字之前。
    具体示例如下:

     class Dog extends Canidae implements Animal { //先继承,再实现
     程序代码.....
                 }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值