抽象类和接口

抽象类不能够直接实例化只能通过子类实现,只能通过子类实现
抽象类也有属性、方法、代码块,抽象方法只能在抽象类中,抽象类中可以有普通方法
抽象方法只负责定义方法签名,没有方法体
当非抽象子类继承抽象的父类,子类必须重写父类中的所有抽象方法;抽象子类不需要
例如
abstract class Animal {
    public Animal() {
        System.out.println("Animal()");
    }
    public abstract void move() {
//抽象方法没有方法体
    }

    public void run() {//抽象类中可以有非抽象方法
        System.out.println("animal run")
    }

}

class Dog extends Animal{
    public Dog () {
        Systen.out.println("Dog()");
    }
    public void move() {//父类中所有抽象方法必须被非抽象子类重写
        System.out.println("dog move")
    }
}

class Test {
    public static void main(String[] args) {
        Animal animal = new Dog();

    }
}
结果:Animal()
    Dog()


接口是抽象方法和常量值定义的集合。
接口是一种特殊的抽象类,只包含常量和方法的定义,没有变量和方法的实现
接口是一种规范

一个类可以实现多个接口,多个无关类可以实现同一接口
public interface Runter {//gdk1.8版本中有默认实现方法
    public static final int id = 1;//简写int id = 1;
接口中的成员变量只能是常量public static final可以不写 
    public static void start();//简写void start();
    public void run();
    public void stop();
}

class A implements Runter {
//必须实现所有方法
}

class B extends Runter {

}

转载于:https://my.oschina.net/u/3544285/blog/1162335

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值