浅析继承与实现接口

概念
继承:简单说是子类继承父类。子类拥有父类的属性。再通俗点,独生子在没有特殊遗嘱的情况下,拥有父类的财产,此时理解为子类拥有父类的所有非私有属性,但是无法继承父类的私有变量,好比不能继承父亲的细胞,不能继承父亲的胳膊。当然儿子可以不一样呀,父亲与儿子都会唱歌,父亲唱歌五音不全,但是儿子歌声优美,此时为需要子类重写父类的方法。
注意地方:

  1. 继承是不是只是指子类继承父类?
    当然不是。子接口也能继承父接口。
  2. 子类不能继承私有属性。
  3. 子类可以重写父类方法。
    举个例子:
    父类:
public class User {
    private int id;
    private String name;
    private int age;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}

子类

public class UserSon extends User {
    private int iId;
    public void test(int id){//父类不存在的方法
        System.out.println(this.id);//私有,所以不能继承
        this.setId(id);//public,所以继承到
    }
    public void setId(int id) {//重写父类方法
        this.iId = id;
    }
}

实现接口:实现接口,必须实现接口内的所有方法。
接口Car

public interface Car {
   void produce();
}

实现接口:

public class BWM implements Car{
    @Override
    public void produce() {
        System.out.println("produce BWM!!!");
    }
}

注意
两个接口直接需要使用继承

public interface TestCarExtends extends Car{    
}

继承抽象类
必须实现所有的抽象方法!!!
抽象类:

public abstract class AbstractClass {
    public String toString(){//非抽象方法
        return getClass().getName();
    }
    public abstract void toInteger();//抽象方法
}

继承抽象类

public class AbstractClassSon extends AbstractClass{
    public static void main(String[] args) {        
    }
    private void tt(){        
    }
    @Override
    public void toInteger() {
    }
}

总结,从上面两个具体的例子,其实继承抽象类与实现接口的区别已经很明显了,继承抽象类需要实现所有抽象方法,接口同样。
区别:

  1. 一个是类,一个是接口。(最主要区别)
  2. java不支持多继承,但是可以实现多个接口。
  3. 接口需要实现所有方法,抽象类只需要实现抽象方法。
  4. 类可以运行,接口无法运行,因为没有方法体,更别说main方法了。
  5. 方法的修饰符上,抽象类可以在非抽象方法中所有权限,但是接口只有public

简单总结这么多吧,总结这些为后面对ArrayList的源码进行解析。

积土成山,风雨兴焉!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值