您的位置:首页 > 其它

4.3抽象类abstract和接口interface定义implements实现接口中的抽象方法

2017-04-26 21:52 831 查看
定义一个类时,常常需要定义一些方法描述类的行为特征,这些方法的实现方式是无法确定的。Java允许在定义方法时不写方法体,不包含方法体的方法为抽象方法,抽象方法用abstract修饰

格式:

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


//定义抽象类animal
abstract class animal
{
//定义抽象方法shout()
abstract int shout();//不包含方法体的抽象方法

}


包含方法体的类必须声明为抽象类,但抽象类可以不包含任何抽象方法

抽象类是不可以被实例化的,抽象类中有可能包含抽象方法,抽象方法是没有方法体的,不可以被调用。

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

abstract class animal
{
//定义抽象方法shout
abstract void shout();
}

class Dog extends animal
{
//实现抽象方法
void shout()
{
System.out.println("旺旺~");
}
}

public class Example10
{
public static void main(String []args)
{
Dog p = new Dog();
p.shout();
}
}


4.3.2接口

如果抽象类中所有方法都是抽象的,那么可以将这个类用另外另外一种方式来定义,接口

interface animal
{
int ID = 1;//定义全局常量
void breathe();//定义抽象方法
void run();
}


接口中定义的方法和变量都包含一些默认修饰符。接口中定义的方法默认使用public abstract来修饰,即抽象方法,接口中的变量用public static final修饰,这个值是不能改变的,是一个全局常量。

调用接口中的方法:

因为接口中的都是抽象方法,所以不能通过实例化对象直接调用接口中的方法,这时需要定义一个类,并使用implement实现接口中的抽象方法。

//定义animal接口
interface animal
{
int ID = 1 ;
void breathe();
void run();
}
//dog类实现animal接口,
class Dog implements animal
{
//实现breathe的方法
public void breathe()
{
System.out.println("狗在呼吸");
}
//实现run方法
public void run()
{
System.out.println("狗在跑");
}
}

public class Example11
{
public static void main(String []args)
{
Dog dog = new Dog();//创建一个dog实例化对象
dog.breathe();//调用dog类中的breathe方法
dog.run();
}
}


接口之间的继承关系

//定义animal接口
interface animal
{
int ID = 1 ;
void breathe();
void run();
}
//定义LanfdAnimal接口并继承animal接口
interface LandAnimal extends animal
{
void lijia();//定义抽象方法
}
//定义dog实现LandAnimal接口,使用implements实现接口
class Dog implements LandAnimal
{
public void breathe()
{
System.out.println("狗在呼吸");
}//实现breathe的方法
public void run()
{
System.out.println("狗在跑");
}//实现run方法
public void lijia()
{
System.out.println("狗生活在陆地上");
}//实现lijia方法
}

public class Example11
{
public static void main(String []args)
{
Dog dog = new Dog();//创建一个实例对象
dog.breathe();//调用breathe方法
dog.run();//调用run方法
dog.lijia();//调用lijia方法
}
}


1、接口的方法都是抽象的,不能实例化对象

2、当一个类实现接口时,如果这个类是抽象类,则实现接口中的部分方法就可以,否则,实现接口中的所有方法

这句具体我也不明白······

3、一个类通过implements关键字实现接口时,可以实现多个接口,被实现的多个接口要用,隔开

格式如下:

interface Run
{
//程序代码
}
interface Fly
{
//程序代码
}
class Bird implements Run,Fly
{
//  程序代码
}


4、一个接口可以通过extends关键字继承多个接口,接口之间用,隔开。

interface Running
{
//程序代码
}
interface Flying
{
//程序代码
}
interface Eating extends Running,Flying
{
//程序代码
}


5、一个类在继承另一个类的时候同时还可以实现接口,此时,extends关键字位于implements关键字之间

class Dog extends canidae implements animal//先继承,再实现

{

程序代码

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐