您的位置:首页 > 编程语言 > Java开发

java基础知识3--抽象类,接口

2013-08-12 16:50 513 查看
抽象类:

1.父类方法的不确定性,不能实例化。抽象方法只能在抽象类中。

2.抽象类不一定要包含abstract方法。

3.包含抽象方法的类一定是抽象类。

4.抽象方法不能有主体,即抽象方法不能实现。

//这就是一个抽象类
abstract class Animal
{
String name;
int age;
abstract public void cry();//抽象方法不能实现cry(){};错误
}
//当一个类继承的父类是抽象类的话
//需要把抽象类中所有的抽象方法都实现
class Cat extends Animal{
//实现父类的cry
public void cry()
{

//do nothing
}
}


接口:

1.就是给出一些没有内容的方法,封装到一起,到某个类要使用的时候,再根据具体情况把这些方法写出来。

语法:

class 类名 implements 接口{

  方法;

  变量;

}

注:接口是更加抽象的抽象类,抽象类里的方法可以有方法体,抽象类的方法可以有方法体(非abstract),接口里的所有方法都没有方法体。接口实现了程序设计的多态和高内聚低耦合的设计思想。

原则:

1.接口不能被实例化。

2.接口中的所有方法都不能有主体。

3.一个类可以实现多个接口。

4.接口中可以有变量,但是不能用private和protected修饰。

a.接口中的变量,本质上都是static的,而且是final的,不管你的加不加static修饰。

b.在java开发中,我们经常把常用的变量放到接口中,作为全局变量,访问形式:接口名.变量

5.一个接口不能继承其他的类,但是可以继承其他的接口。

//接口usb
interface Usb
{
int a=0;//必须初始化
public void start();
public void stop();
}
interface Killy
{
public void Cry();
}
//相机类,实现usb接口
//重要的原则:当一个类实现了一个接口,就要求该类把这个接口的所有方法都要实现
class  Camera implements Usb,Killy
{
public void start()
{
System.out.println("相机开始工作");
}
public void stop()
{
System.out.println("相机关机");
}
public void Cry(){
System.out.println("相机坏了!!!");
};

}
//手机类
class  Phone implements Usb,Killy
{
public void start()
{
System.out.println("手机开始工作");
}
public void stop()
{
System.out.println("手机关机");
}
public void Cry(){
System.out.println("手机坏了!!!");
};
}

//计算机
class Computer
{
//开始使用usb接口
public void useUsb(Usb usb)
{
usb.start();
usb.stop();
}
}

public class demo
{
public static void main(String args[])
{
Computer computer = new Computer();
Camera camera = new Camera();
Phone phone = new Phone();
//可以调用实例,因为已经实现了接口的方法
computer.useUsb(camera);
computer.useUsb(phone);

}
}


1.实现接口可以看作是对继承的一种补充。

2.实现接口可以在不打破竭诚关系的前提下,对某个类功能扩展,非常灵活。

△前期绑定:在程序运行之前进行绑定,由编译器和连接程序实现。又叫静态绑定,例如static和final方法,注意这里也包括private方法,因为它属于隐式final。

△后期绑定:在运行时根据对象的类型进行绑定,由方法调用机制实现,因此又叫动态绑定,或者运行时绑定。除了前期绑定外的所有方法都属于后期绑定。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: