《java入门第一季》之面向对象接口面试题
首先,(1)叙述接口的成员特点:
/*
接口成员特点
成员变量;只能是常量,默认都是常量,并且是静态的。
默认修饰符:public static final
建议:自己手动给出类似:public static final int num3 = 30;的格式
构造方法:接口没有构造方法。
成员方法:默认只能是抽象方法。
默认修饰符:public abstract
建议:自己手动给出。 用几行代码验证上述特点。
*/
interface Inter {
public int num = 10;
public final int num2 = 20;
public static final int num3 = 30;//(默认)的,但是建议自己自动给出所有修饰 //错误: 需要<标识符>,说明接口没有构造方法。
//public Inter() {} //接口方法不能带有主体{},因为接口方法是没有内容的,说明只能是抽象方法。
//public void show() {} //abstract void show(); //默认public,权限最大,因此在子类方法重写的时候访问权限不能更低,父类public子类更应该public建议字符类的权限修饰符都一样
public void show(); //默认abstract,建议都写成:public abstract void show();
} /*
class InterImpl implements Inter {
public InterImpl() {
super();
}
}
*/ class InterImpl extends Object implements Inter {//类实现接口。class 类名 implements接口名{}
public InterImpl() {//子类默认继承于object中的无参构造方法
super();
} public void show() {}
} //测试类
class InterfaceDemo2 {
public static void main(String[] args) {
//创建对象
Inter i = new InterImpl();//多态的方式,
System.out.println(i.num);
System.out.println(i.num2);
System.out.println(i.num3);
//i.num = 100;
//i.num2 = 200;
//System.out.println(i.num); //无法为最终变量num分配值
//System.out.println(i.num2);//无法为最终变量num2分配值,验证了final修饰
System.out.println(Inter.num);
System.out.println(Inter.num2);//接口名称调用成员,说明有static修饰
System.out.println(Inter.num3);
System.out.println("--------------");
}
}
(2)、抽象和接口比较:
抽象类和接口的区别:
A:成员区别
抽象类:
成员变量:可以变量,也可以常量
构造方法:有
成员方法:可以抽象,也可以非抽象
接口:
成员变量:只可以常量而且是静态
构造方法:无
成员方法:只可以抽象 B:关系区别
类与类
继承,单继承
类与接口
实现,单实现,多实现
接口与接口
继承,单继承,多继承 C:设计理念区别
抽象类 被继承体现的是:”is a”的关系。抽象类中定义的是该继承体系的共性功能。向上抽取
接口 被实现体现的是:”like a”的关系。接口中定义的是该继承体系的扩展功能。属于特性的东西
《java入门第一季》之面向对象接口面试题的更多相关文章
- JAVA入门第一季(mooc-笔记)
笔记相关信息 /** * @subject <学习与创业>作业1 * @author 信管1142班 201411671210 赖俊杰 * @className <JAVA入门第一季 ...
- Java入门第一季——从此投身Java??
找工作告一段落. 最后的工作呢,和java紧密相关,也是阴差阳错,不过都是软件开发,都好了,不过以后侧重点肯定是在java这边,php有机会还是一直学下去的,那么美的说~ Java开发第一季 一.简 ...
- 《java入门第一季》之面向对象(谈谈接口)
软件中有接口,这里的接口与硬件中的接口还是有很大区别的. 这里介绍接口不考虑JDK8的新特性(JDK8开始接口里面可以有非抽象方法了,介绍JDK8新特性可能要到整个第一季写完吧!) 还是直接进入接口的 ...
- 《java入门第一季》之面向对象(内部类到底在哪里?)
/* 内部类概述: 把类定义在其他类的内部,这个类就被称为内部类. 举例:在类A中定义了一个类B,类B就是内部类. 内部的访问特点: A:内部类可以直接访问外部类的成员,包括私有. B:外部类要访问内 ...
- Java入门第一季
慕课网:http://www.imooc.com/learn/85 Java入门知识第一季 1.Java开发环境和IDE的使用: 2.变量和常量 3.常用的运算符 4.流程控制语句 5.数组:使用Ar ...
- 《java入门第一季》之Arrays类前传(排序案例以二分查找注意的问题)
根据排序算法,可以解决一些小案例.举例如下: /* * 把字符串中的字符进行排序. * 举例:"dacgebf" * 结果:"abcdefg" * * 分析: ...
- 《java入门第一季》之面向对象(接口收尾)
通过案例的形式,结束接口部分. /* 猫狗案例,加入跳高的额外功能 分析:从具体到抽象 猫: 姓名,年龄 吃饭,睡觉 狗: 姓名,年龄 吃饭,睡觉 由于有共性功能,所以,我们抽取出一个父类: 动物: ...
- 《java入门第一季》之面向对象静态内部类和非静态内部类的区别
很感谢在内部类章节,"开心阳"先生给与的建议.使用静态内部类.这里就简单说一下静态内部类的使用. package com.devin; public class MyMain{ p ...
- 《java入门第一季》之面向对象(包概述)
由于eclipse等ide的强大功能,使得建包,导包用一些快捷键就能完成.这里对包的概念做稍微的叙述,了解即可: 分包后使得项目更加清晰,提高代码维护性. 包: A:其实就是文件夹 ...
随机推荐
- JavaScript学习笔记之数组(一)
数组基础篇 一.数组概述 1. 数组的语法 数组(array)是按次序排列的一组值.每个值的位置都有编号(从0开始). var arr=[1,2,3] //arr[0]=1 任何类型的数据,都可以放入 ...
- python3+django2 开发易语言网络验证(上)
创作背景: 在某论坛中下载到一套php开发易语言网络验证的教程,照着看下来,花了两天的时间,结果发现教程里开发的网络验证,以及随着教程一起给学员的源码,都存在着根本用不了的bug!我想要看看能不能在原 ...
- 初始化openresty开发环境
参考链接 https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-14-04 初始化git ...
- x264源代码简单分析:滤波(Filter)部分
===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...
- [ExtJS5学习笔记]第三十二节 sencha extjs 5与struts2的ajax交互配置
本文地址:http://blog.csdn.net/sushengmiyan/article/details/43487751 本文作者:sushengmiyan ------------------ ...
- [ExtJS5学习笔记]第二十三节 Extjs5中表格gridpanel的列格式设置
本文地址:http://blog.csdn.net/sushengmiyan/article/details/39665979 官方文档:http://docs.sencha.com/extjs/5. ...
- 07 ProgressDialog
<span style="font-size:18px;">package com.fmy.example1; import android.app.Activity; ...
- Swift基础之:新的访问控制fileprivate和open
(转载的,暂时没有研究过这类语句,有空看看) 在swift 3中新增加了两种访问控制权限 fileprivate和 open.下面将对这两种新增访问控制做详细介绍. fileprivate 在原有的s ...
- Android的ImageView介绍-android学习之旅(二十二)
ImageView简介 imageView继承于View,主要用于显示图片,凡是Drawable对象都可以用它显示. ImageView直接派生了ImageButton和ZoomButton等组件. ...
- Git管理工具对比(GitBash、EGit、SourceTree)
Git管理工具对比(GitBash.EGit.SourceTree) GitBash是采用命令行的方式对版本进行管理,功能最为灵活强大,但是由于需要手动输入希望修改的文件名,所以相对繁琐. EGit是 ...