抽象类与接口的区别 抽象方法和接口的区别

抽象类就是将类似或相似的部分给抽取出来,这句话看上去很搞笑,其实它说出了抽象类的真理。你可能会说”我不是可以重写一个公共类,然后我实例化这个公共类,调用相同的方法就可以了”,这里是可以,实际上抽象类的工作也就是这个,不过他省去了你实例化的这个步骤,并且你还可以生载这个方法

抽象类特性:

1.非抽象子类必须完全实现这个抽象中所有的抽象方法

2.抽象类不能被实例化,它的意义在于被扩展。访问方式TestClass::test(‘我是抽象方法’);

3.抽象类通常(也可以没有)至少有1个抽象方法,抽象方法中没有大括号。非抽象方法是有的

4.抽象方 法不必实现具体的功能,由子类来完成

5.在子类实现抽象类的方法时,其子类的可见性必须大于或等于抽象方法的定义

6.抽象类的方法可以有参数,也可以为空

7.如果抽象方法有参数,那么子类的实现也必须有相同的参数个数

他们的不同点:

1.抽象类中可以有非抽象的方法而接口中只能够有抽象的方法!

2.一个子类可以继承多个接口,而一个类只能继承一个抽象类!

3.接口的使用方式通过implements关键字进行,抽象类则是通过继承extends关键字进行!

4.在声明上

接口中只能声明抽象方法(包括静态抽象方法)和静态变量.而抽象类除了包含一般类的特点,即包括属性和一般方法外,还可以声明抽象方法(包括静态抽象方法).

5.在写法上

一、接口的抽象方法前不用也不能加abstract关键字,默认隐式就是抽象方法,也不能加final关键字来防止抽象方法的继承.而抽象类中抽象方法前则必须加上abstract表示显示声明为抽象方法.

二、接口的抽象方法默认是public的,也只能是public的,不能用private、protected修饰符修饰.而抽象类则可以。

抽象类与接口的区别 抽象方法和接口的区别

6. 一个非抽象类如果extends一个抽象类后只需(并且必需)所有的实现抽象方法就行了,非抽象方法可以不实现。如果implements一个接口,就必须实现接口中的所有方法(因为接口中的方法均为抽象方法);

  

爱华网本文地址 » http://www.aihuau.com/a/25101014/234958.html

更多阅读

韭菜与韭黄的区别是什么 韭黄和韭菜有什么区别

韭菜与韭黄的区别是什么——简介韭菜与韭黄都是农贸市场上常见的蔬菜,二者虽同出一根,但却有着本质的区别。下面就从几个方面来说说二者的区别。韭菜与韭黄的区别是什么——工具/原料韭菜韭黄韭菜与韭黄的区别是什么——方法/步骤

港货与行货的区别 港版和国行怎么分辨

港货与行货的区别——简介港货和行货通常代表从不同销售渠道进入大陆的电子产品,下面简单和大家分享港货和行货的区别。港货与行货的区别——工具/原料聪明的你港货与行货的区别——方法/步骤港货与行货的区别 1、

雅思与托福的区别 不出国考雅思有用吗

雅思与托福的区别——简介 大家都知道想要申请美国大学是要考SAT的,同时还需要一门托福或雅思的成绩,这俩个名字同学们都不陌生,可是要说对于申请美国大学来说托福和雅思还是有区别的哦。下面请看SATonline小编给大家扒一扒雅思和托福

LCD与LED液晶显示屏的区别,哪个更好 lcd与led的区别

LCD与LED液晶显示屏的区别,哪个更好——简介经常看到网上有人询问lcd与led显示器的区别,小编就在这里比较全面的讲解下lcd与led的区别到底是什么?欢迎游览小编其他经验,互相学习,进步。LCD与LED液晶显示屏的区别,哪个更好——工具/原料L

声明:《抽象类与接口的区别 抽象方法和接口的区别》为网友去掉浮华虚夸分享!如侵犯到您的合法权益请联系我们删除