Java学习第20天
接口的成员特点:
(1) 成员变量:只能是常量。默认修饰符:public static final
(2)构造方法:接口没有构造方法,因为接口主要是对行为进行抽象,是没有具体存在,一个类如果没有父类,默认继承自Object类
(3)成员方法:只能是抽象方法,默认修饰符:public abstract;
接口示例:
package jicheng.com;
public interface Write {
void write();
}
package jicheng.com;
public abstract class Animal2 {
private int age;
private String
name;
public Animal2()
{
}
public Animal2(int age, String name) {
this.age = age;
this.name = name;
}
public int getAge()
{
return age;
}
public void setAge(int age) {
this.age = age;
}
public String
getName() {
return name;
}
public void setName(String
name) {
this.name = name;
}
public abstract void eat();
public abstract void speak();
public void run(){
System.out.println("他能跑");
}
}
package jicheng.com;
public class Cat3 extends
Animal2 implements Write
{
@Override
public void eat()
{
System.out.println("猫吃鱼");
}
@Override
public void speak()
{
System.out.println("喵喵");
}
@Override
public void write()
{
System.out.println("猫能写字");
}
public Cat3()
{
}
public Cat3(int age, String name) {
super(age,
name);
}
}
package jicheng.com;
public class Demo5 {
public static void main(String[] args) {
System.out.println("-------------");
Write w=new Cat3();
w.write();
((Cat3) w).eat();
((Cat3) w).speak();
((Cat3) w).setAge(18);
((Cat3) w).setName("加菲");
System.out.println(((Cat3) w).getAge()+" "+((Cat3) w).getName());
w=new Cat3(19,"汤姆");
System.out.println(((Cat3) w).getAge()+" "+((Cat3) w).getName());
System.out.println("-------------");
Animal2 a=new Cat3();
a.setAge(18);
a.setName("加菲");
a.speak();
a.eat();
((Cat3) a).write();
System.out.println(a.getAge()+" "+a.getName());
a=new Cat3(19,"汤姆");
System.out.println(a.getAge()+" "+a.getName());
System.out.println("------------");
//最后一种方法最实用
Cat3 c=new Cat3(18,"加菲");
c.eat();
c.speak();
c.write();
System.out.println(c.getAge()+" "+c.getName());
}
}
类与接口的关系:
类和类的关系:继承关系,只能单继承,但可以多层继承
类和接口关系:实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口。
接口和接口的关系:继承关系,可以单继承也可以多继承。
原文地址:https://www.cnblogs.com/20203923rensaihang/p/15110519.html
- 加法生产
- Web 前端利器Emmet 的HTML用法总结
- Web 前端利器Emmet 的CSS 用法总结
- 响应式 HTML 邮件制作之三个实例
- java知识点归纳
- EaseMobile 主题导航菜单设置小图标的方法(图文+视频教程)
- NEC css规范
- DW Mobile Switcher:移动设备识别切换主题插件
- 揭秘技术大国以色列
- mix-blend-mode 混合模式 background-blend-mode 背景混合模式 isolation:isolate 隔离
- wp_nav_menu 函数经Walker_Nav_Menu 类自定义导航菜单HTML
- css3 RGBA 红色R+绿色G+蓝色B+Alpha通道
- css3 gradient 渐变
- TwentyTwenty:一个图片特效Jquery 插件
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- leetcode树之从上到下打印二叉树
- leetcode树之二叉搜索树的最近公共祖先
- leetcode树之从翻转二叉树
- Linux常见的持久化后门汇总
- 一篇文章带你使用 Python搞定对 Excel 表的读写和处理(xlsx文件的处理)
- 从 rollup 初版源码学习打包原理
- leetcode树之相同的树
- Mysql Sql 语句练习题 (50道)
- 【每日一具16】来了!扫描图片批量漂白修正软件
- 实现一个 webpack loader 和 webpack plugin
- 万字长文带你走进 JavaScript 的世界
- windows中常见后门持久化方法总结
- Python3爬虫实战【点触验证码】 — 模拟登陆bilibili
- BOM 是个什么玩意!
- Educational Codeforces Round 81 (Rated for Div. 2) B - Infinite Prefixes