java匿名内部类,多态,接口练习
1多态以及接口调用方法:
public class Interface { public static void main(String[] args) {
Al x = new Al();
jian a = x;
System.out.println(a.sub(, ));
// 使用接口引用调用的方法
animal zz = new animal();
zz.jiao();
zz = new dog();
zz.jiao();
zz = new cat();
zz.jiao();
//多态
} }
interface jia{
public int add(int x, int y);
}
interface jian{
public int sub(int x, int y);
}
interface cheng{
public int mul(int x, int y);
}
interface chu{
public int del(int x, int y);
}
class Al implements jia,jian,cheng,chu{
public int sub(int x, int y){
return x - y;
}
public int add(int x, int y){
return x + y;
}
public int mul(int x, int y){
return x * y;
}
public int del(int x, int y){
return x / y;
}
}
class animal{
public void jiao(){
System.out.println("我是animal");
}
}
class dog extends animal{
public void jiao(){
System.out.println("汪汪");
}
}
class cat extends animal{
public void jiao(){
System.out.println("喵喵");
}
}
2.匿名内部类练习:
public class 匿名内部类 {
public void drink(Beverages drink){
System.out.println("运动员在饮用" + drink);
}
public static void main(String[] args) {
DustMan dm = new DustMan();
dm.cleanWithBroom();
dm.cleanWithDustCollector(); 匿名内部类 sp = new 匿名内部类();
sp.drink(new Beverages("橙汁"){
public void addsomething(){
System.out.println("橙汁老司机开车了");
}
});
sp.drink(new Beverages("可乐"){
public void addsomething(){
System.out.println("可乐老司机开车了");
}
});
sp.drink(new Beverages("雪碧"){
public void addsomething(){
System.out.println("雪碧老司机开车了");
}
});
sp.drink(new Beverages("芬达"){
public void addsomething(){
System.out.println("芬达老司机开车了");
}
});
sp.drink(new Beverages("绿茶"){
public void addsomething(){
System.out.println("绿茶妹妹开车了");
}
}); }
}
class DustMan{
public void cleanWithBroom(){
Utility util = new Utility(){
public void clean(){
System.out.println("正在清洁卫生。。。");
}
};
util.clean();//调用前面的方法;
}
public void cleanWithDustCollector(){
ElectronicUtil util = new ElectronicUtil(){
public void clean(){
System.out.println("正在用吸尘器清洁卫生。。。");
}
};
util.clean();//调用前面的方法;
}
}
interface Utility{
public void clean();
}
class ElectronicUtil{
public void clean(){
System.out.println("使用电子设备清洁卫生....");
}
}
class Beverages{
private String juiceName;
public Beverages(String name){
this.juiceName = name;
}
public String toString(){
return juiceName;
}
}
java匿名内部类,多态,接口练习的更多相关文章
- 学习博客之Java继承多态接口
这一篇博客主要是对软工前一阶段学习的总结,主要是对Java的学习总结,包括三部分:Java的继承.多态和接口 Java的继承 继承是面向对象的三大特性之一,能够实现软件的复用. Java子类继承父类的 ...
- Java中多态、抽象类和接口
1:final关键字(掌握) (1)是最终的意思,可以修饰类,方法,变量. (2)特点: A:它修饰的类,不能被继承. B:它修饰的方法,不能被重写. C:它修饰的变量,是一个常量. (3)面试相关: ...
- Java 面向对象之接口、多态
01接口的概念 A:接口的概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成 ...
- 1.Java基础-面向对象编程思想(封装继承多态接口)
封装: 1.定义:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别. 2.封装的目的是:增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,一特定的 ...
- Java面向对象(接口、多态)
面向对象 今日内容介绍 u 接口 u 多态 第1章 接口 1.1 接口概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的 ...
- java基础(11):接口、多态
1. 接口 1.1 接口概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成. ...
- 记录:JAVA抽象类、接口、多态
JAVA抽象类.接口.多态 1. 多态 定义 多态是同一个行为具有多个不同表现形式或形态的能力.(多态就是同一个接口,使用不同的实例而执行不同操作) 如何实现多态 继承和接口 父类和接口类型的变量赋值 ...
- 第五节:详细讲解Java中的接口与继承
前言 大家好,给大家带来详细讲解Java中的接口与继承的概述,希望你们喜欢 什么是接口(interface) 接口中的方法都是抽象方法,public权限,全是抽象函数,不能生成对象 interface ...
- 关于java中多态的理解
java三大特性:封装,继承,多态. 多态是java的非常重要的一个特性: 那么问题来了:什么是多态呢? 定义:指允许不同类的对象对同一消息做出响应.即同一消息可以根据发送对象的不同而采用多种不同的行 ...
- 深入Java核心 Java中多态的实现机制(1)
在疯狂java中,多态是这样解释的: 多态:相同类型的变量,调用同一个方法时,呈现出多中不同的行为特征, 这就是多态. 加上下面的解释:(多态四小类:强制的,重载的,参数的和包含的) 同时, 还用人这 ...
随机推荐
- [Cycle.js] The Cycle.js principle: separating logic from effects
The guiding principle in Cycle.js is we want to separate logic from effects. This first part here wa ...
- 在 VS2008 下操作 Excel 的方法总结
这些天做个软件,需要读取 Excel 并导入到数据库中,所以研究了一下在 VC 下操作 Excel 的方法,这里做个总结,以作备忘. 一.最常用的 OLE 自动化方式 这个方式应该说是功能最全的方 ...
- using 关键字给类和名称空间指定别名
1. using System; using System.Text; namespace DLL { public class Class1 { public void showStr() { Co ...
- Oracle查找重复数据
Select * From 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1)
- Label 表达式绑定
Text='<%#"总金额为: "+Convert.ToString(Convert.ToDecimal(TextBox1.Text)*Convert.ToInt32(Tex ...
- AngularJs练习Demo5
@{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport&quo ...
- Shiro 权限框架使用总结
我们首先了解下什么是shiro ,Shiro 是 JAVA 世界中新近出现的权限框架,较之 JAAS 和 Spring Security,Shiro 在保持强大功能的同时,还在简单性和灵活性方面拥有巨 ...
- 判别linux机器字节序为大端还是小端
代码如下: #include <iostream> #include <arpa/inet.h> #include <cstdio> using namespace ...
- I/O复用-epoll模型
epoll函数 epoll函数的使用与select.poll上有很大的差异. epoll使用一组函数来完成任务,而不是单个函数. epoll把用户关心的文件描述符上的事件放在内核里的一个事件表中,从而 ...
- string 与char* char[]之间的转换
1.首先必须了解,string可以被看成是以字符为元素的一种容器.字符构成序列(字符串).有时候在字符序列中进行遍历,标准的string类提供了STL容器接口.具有一些成员函数比如begin().en ...