//方法爲抽象方法cry
//父類申明抽象類Animal
1、不能被實例化:Animal an = new Animail();
2、抽象類可以沒有抽象方法
3、一旦一個類被申明爲抽象方法,該類一定是abstract
4、一定不能有主題,也就是後面一定不能加{}
5、抽象類裏面可以有實現的方法
abstract class Animal{
abstract public void cry();
}
//子類需要實現全部繼承的抽象方法
class Cat extends Animal{
public void cry()
{
System.out.println("");
}
}
class Dog extends Animal{
public void cry()
{
System.out.println("汪");
}
}
接口
由於java是單繼承的,所以要用到接口,可以多實現接口
1、接口不能被實例化,Usb usb = new Usb();
2、接口所有方法不能有主體,也就是不能有大括號public void start(){};
這一點與抽象類不同
3、一個類可以實現多個接口
4、接口之中可以有變量
a、不能用private或protected修飾
b、都是static類型,是final
c、把常用變量放在接口中,作爲全局變量使用
5、接口不能繼承其他類,但是能繼承其他接口
public class HelloInterface {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Computer cmp = new Computer();
Camera cm = new Camera();
cmp.useUsb(cm);
}
}
//定義接口usb
interface Usb{
public void start();
public void stop();
}
interface Power{
public void start();
public void stop();
}
//當一個類實現了一個藉口,就要求該類將藉口的所有功能統統實現
class Camera implements Usb,Power{
public void start(){
System.out.println("相機開始");
}
public void stop(){
System.out.println("相機結束");
}
}
class Phone implements Usb{
public void start(){
System.out.println("手機開始");
}
public void stop(){
System.out.println("手機結束");
}
}
class Computer{
public void useUsb(Usb usb){
usb.start();
usb.stop();
}
}