博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java===java基础学习(15)---抽象,接口
阅读量:6757 次
发布时间:2019-06-26

本文共 1757 字,大约阅读时间需要 5 分钟。

 

抽象

//这就是一个抽象类abstract class Animal{    String name;    int age;    abstract public void cry();            }//当一个类继承的父类是抽象的话//需要我们把继承类中的所有方法全部实现class cat extends Animal{    public void cry() {        // do nothing            }}

 

用 abstract 关键字来修饰一个类时,这个类就是抽象类。

用 abstract 关键字来修饰一个方法时,这个方法就是抽象方法。

注意事项:

抽象类不能被实例化
抽象类不一定要包含 abstract 方法。也就是说 ,抽象类可以没有abstract方法。
一旦这个类包含 abstract 方法,则这个类必须声明为abstract
抽象方法不能有主题,例如:

 

接口

/* * 功能:接口 *  */package demo;public class test3 {    public static void main(String []args) {        Computer computer = new Computer();                Camera camera1 = new Camera();                Phone phone1 = new Phone();                computer.useUsb(camera1);        computer.useUsb(phone1);            }}interface Usb{    int a = 1;    //声明两个方法    //开始工作    public void start();    //停止工作    public void stop();    }//编写一个照相机类,并且实现usb接口//一个重要原则:当一个类实现了一个接口//就要求该类把这个接口的所有方法,统统实现class Camera implements Usb{    public void start()    {        System.out.println("我是相机,开始工作!");    }        public void stop()    {        System.out.println("我是相机,停止工作!");            }}//实现一个手机类class Phone implements Usb{    public void start()    {        System.out.println("我是手机,开始工作!");    }        public void stop()    {        System.out.println("我是手机,停止工作!");    }    }class Computer{    public void useUsb(Usb usb)     {        usb.start();        usb.stop();    }}

接口注意事项:

1.接口不能被实例化

2.接口中的所有方法都不能有主体
3.一个类可以实现多个接口
4.接口中可有变量[但,变量不能用 private 和 protected 修饰]
a.接口中的变量,本质上都是static的,不管你加不加static修饰
b.在Java开发中,我们经常把常用的变量,定义在接口中,作为全局变量使用
5.一个接口不能继承其它的类,但是可以继承别的接口

 

实现接口 VS 继承类:

1,实现接口可以看作是对继承的一种补充

2, 实现接口可在不打破继承关系的前提下,对某个功能扩展,非常灵活

 

小结:
接口随是更加抽象的抽象的类,抽象类里的方法可以有方法体,接口里的所有方法都没有方法体。接口体现了程序设计的多态和高内聚低耦合的设计思想。

 

 

转载于:https://www.cnblogs.com/botoo/p/8858433.html

你可能感兴趣的文章
如何理解ip路由和操作linux的路由表
查看>>
WCF的几种寄宿方式 ( 转)
查看>>
数字数据fzu 2120 数字排列
查看>>
ORACLE 数据库 SQL 转换 只取 年和月
查看>>
区间查询[2009国家集训队]小Z的袜子(hose)
查看>>
Android之使用微信开放api (三)---注册与反注册应用到微信
查看>>
我是怎样看待微博的
查看>>
论《我是如何安慰女友的》
查看>>
nullnull用宏定义swap(x,y)
查看>>
【Javascript】类,封装性 -- 1
查看>>
Mono for Android安装配置破解
查看>>
uploadfy 常见问题收集
查看>>
WPF----数据绑定
查看>>
子类化GetOpenFileName/GetSaveFileName, 以及钩子函数OFNHookProc的使用的简要说明
查看>>
C语言中判断int,long型等变量是否赋值的方法
查看>>
leetcode -- Longest Valid Parentheses
查看>>
详解JAVA输出Hello World
查看>>
概率问题随笔
查看>>
关于在堆中创建字符串对象的疑惑
查看>>
poj1077(康托展开+bfs+记忆路径)
查看>>