【黑马程序员】抽象类与接口(五)

来源:互联网 发布:歼31黑烟 知乎 编辑:程序博客网 时间:2024/06/06 10:00

------------android培训java培训、期待与您交流! ----------------


抽象类与接口

一、抽象类


①介绍

当多个类中出现相同功能,但是功能的主题不同,这时可以向上抽取,这时只抽取功能的定义,而不抽取功能的主体

②抽象类的特点

I:抽象方法一定在抽象类中

II:抽象方法与抽象类不许用abstract修饰

III:抽象类不可以用new类创建对象,因为调用抽象方法没有意义

IV:抽象类中的抽象方法要被使用,必须有子类覆盖所有的抽象方法之后,建立子类对象调用,如果子类只覆盖了部分方法,

那么该类也为抽象类。因此可以得出结论,只要有抽象方法的类都是抽象类。


用法示例:

//继承抽象类public class AbstractDemo extends Demo{public static void main(String[] args) {//使用匿名对象调用run方法new AbstractDemo().run();}//首先抽象类中的抽象方法@Overridepublic void run() {System.out.println("running");}}//定义抽象类abstract class Demo{//定义抽象方法public abstract void run();}

运行结果为:

running



二、接口


①介绍:

接口可以简单的理解为一个特殊的抽象类,当抽象类中的方法都是抽象的时候,那么可以通过接口的形式来表示。

②class用来定义类,interface用来定义接口

③接口内容的定义形式:

I:接口中常见的成员:常量和抽象方法

II:接口中的成员都有固定的修饰

常量:public static final

方法:public abstract

注意:接口中的成员都是public的,即使不写修饰符,jvm也回默认的加上上述修饰符

III:接口可以被多实现,也是对多继承不支持的转化形式。

注意:若一个类实现了多个接口,接口中存在相同的方法,则此类只需覆盖该方法一次即可

IV:接口之间可以多继承,但是继承的多个接口之中不能有同名但是返回值类型不同的函数


用法示例:

public class InterfaceDemo implements Demo1,Demo2{public static void main(String[] args) {//建立对象并分别调用接口中的方法InterfaceDemo id = new InterfaceDemo();id.run();id.play();id.fun();}//实现接口Demo2中的方法@Overridepublic void play() {System.out.println("play");}//实现接口demo1和demo2中的共有方法,只需要实现一次@Overridepublic void run() {// TODO Auto-generated method stubSystem.out.println("run");}//实现demo1中的方法@Overridepublic void fun() {// TODO Auto-generated method stubSystem.out.println("fun");}}//创建接口demo1interface Demo1{public abstract void run();public abstract void fun();}//创建接口demo2interface Demo2{public abstract void run();public abstract void play();}

运行结果:
run
play
fun

------------android培训java培训、期待与您交流! ----------------

详细请查看:http://edu.csdn.net/heima


0 0
原创粉丝点击