美文网首页
理解类,抽象类,接口之间的异同

理解类,抽象类,接口之间的异同

作者: 刘昱涵 | 来源:发表于2019-02-20 01:21 被阅读0次

    首先是大致的关系,一个类只能继承一个抽象类,一个类可以实现多个接口。

    抽象类

    而相对于类来说,抽象类与其的区别最大的就是无法实例化,所以抽象类只能作为父类,被继承。抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),子类(如果不是抽象类)则必须覆写抽象类之中的全部抽象方法(如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract类。

    具体的使用例子

    //抽象类A
    abstract class A{
        public void fun(){//方法
            System.out.println("这是初始的方法");
        }
    
        public abstract void print();//抽象方法,没有方法体,有abstract关键字做修饰
    
    }
    //单继承特性
    class B extends A{//B类是抽象类的子类,是一个普通类
        @Override
        public void print() {//强制要求重写
            System.out.println("这是重写过后的方法");
        }
    
    }
    //测试
    public class Test {
        public static void main(String[] args) {
            A a = new B();//多态:向上转型
            a.fun();//被子类所覆写的过的方法
        }
    }
    

    接口

    接口与类的区别

    接口不能用于实例化对象。
    接口没有构造方法。
    接口中所有的方法必须是抽象方法。
    接口不能包含成员变量,除了 static 和 final 变量。
    接口不是被类继承了,而是要被类实现。

    类不允许多继承但接口可以

    >// 文件名: WarShip.java
    public interface WarShip
    {
       public void gunType(String name);
    }
     
    // 文件名: Battleship.java
    public interface Battleship extends WarShip
    {
       public void cannonDiameter(int diameter);
    }
     
    // 文件名: Cruiser.java
    public interface Cruiser extends WarShip
    {
       public void speed(int speed);
    }
    

    相关文章

      网友评论

          本文标题:理解类,抽象类,接口之间的异同

          本文链接:https://www.haomeiwen.com/subject/swaqyqtx.html