java抽象类和接口全部解析

#抽象类&抽象方法
抽象类和抽象方法是以abstract修饰的
抽象类属于引用数据类型,无法创建对象(new),所以抽象类是被子类继承的

public abstract class Abs {
}

抽象类内不能实例化,像下面这个实例化(有{}的,{}就是方法体),会报错

public abstract void sum(){       
    };

抽象方法是没有实体,只有方法签名

    public abstract void sum();

抽象方法中可以有构造方法,构造方法通过继承的super()执行

public Abs() {
        System.out.println("抽象方法执行!!");
    }

抽象方法必须在抽象类中,抽象类中不一定要有抽象方法

final与abstract不能同时使用,冲突

一个非抽象类继承了抽象类,一定要把抽象类中的抽象方法实现(覆盖||重写)
作用个人理解:把一类事物的共同特点提取出来,比如动物类A,其中一个抽象方法“动物移动”,不同的动物移动方式不一样(跑、游、飞),这样每一个动物的类继承A,实现移动。
抽象类也是java面向对象的重要体现

补充:java面试题:java语言中凡是没有方法体的方法都是抽象方法。
不对

#接口
接口是一种引用数据。
接口完全抽象(抽象类半抽象),或者说接口是特殊的抽象类
修饰符 interface
接口可继承,支持多继承
接口所有的内容都是public公开的
接口内容:
如果是java 7,只能包含:
1、常量
2、抽象方法
如果是java 8,另外包含
3、默认方法
4、静态方法
如果是java 9,另外包含
5、私有方法

抽象方法还是一样,只是public和abstract可以省略
以下都是抽象方法:

int sun1();
public int sun2();
abstract int sun3();
public abstract int sun4();

接口不能直接使用,必须有一个“实现类”来实现
实现关键字 implements,同样也要重写所有的抽象方法

public abstract class abcdImpments implements abcd{
}

默认方法可以省略public,通过实现直接“继承”,也可以重写,默认方法实现了:多个实现包含一种
比如一个接口“移动”,多个动物实现了这个接口,直接默认拥有

//这是一个默认方法
public default void test(){
        System.out.println("我在移动");
    }

以就近原则为准
对象方法使用默认方法>>实现类覆盖的默认方法>>未覆盖>>默认方法
静态方法

//这是一个静态方法
public static void start(){
        System.out.println("我是静态方法");
    }

静态方法不能通过实现类来调用(对象 s=new 对象 ;s.方法名(参数) 不能调用)
通过接口名称,直接调用静态方法 (接口名.静态方法名(参数))
私有方法
私有方法分为
1、普通私有方法 解决默认方法中的重复代码
2、静态私有方法 解决静态方法中的重复代码
私有方法只能接口中的方法使用,不能在其他地方使用

public default void test(){
        System.out.println("这是一个默认方法");
        s1();
    }
    public static void start(){
        System.out.println("我是静态方法");
        s2();
    }
    private void s1(){
        System.out.println("默认方法使用");
    }
    private static void s2(){
        System.out.println("静态方法使用");
    }

常量
常量同平常一样, public static final可以不写系统默认存在(同上)
这里的常量必须赋值(一但赋值不可更改)
常量详解我就不多说了,有兴趣可以查一下

 public static final int SUM_A=100;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值