java匿名内部类,多态,接口练习

1多态以及接口调用方法:

public class Interface {

    public static void main(String[] args) {
        Al x = new Al();
        jian a = x;
        System.out.println(a.sub(1, 2));
        // 使用接口引用调用的方法
        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;
    }
}
时间: 2024-10-25 06:06:33

java匿名内部类,多态,接口练习的相关文章

Java面向对象多态和接口

一.多态 1.通过多态可以减少类中的代码量,可以提高代码的可扩展性.继承是多态的基础,没有继承就没有多态. 2.把子类转换为父类称为向上转型,自动进行类型转换.把父类转换为子类称为向下转型,必须进行强制类型转换. 3.向上转型后通过父类引用变量调用的方法是子类覆盖或继承父类的方法,通过父类引用变量无法调用子类特有的方法. 4.向下转型后可以访问子类特有的方法.必须转换为父类指向的真实子类类型,否则将出现类型转换异常ClassCasException. 5.instancefo运算符用于判断一个对

Java中多态、抽象类和接口

1:final关键字(掌握) (1)是最终的意思,可以修饰类,方法,变量. (2)特点: A:它修饰的类,不能被继承. B:它修饰的方法,不能被重写. C:它修饰的变量,是一个常量. (3)面试相关: A:局部变量 a:基本类型 值不能发生改变 b:引用类型 地址值不能发生改变,但是对象的内容是可以改变的 B:初始化时机 a:只能初始化一次. b:常见的给值 定义的时候.(推荐) 构造方法中. 2:多态(掌握) (1)同一个对象在不同时刻体现出来的不同状态. (2)多态的前提: A:有继承或者实

java基础(11):接口、多态

1. 接口 1.1 接口概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成.这样将功能的定义与实现分离,优化了程序设计. 请记住:一切事物均有功能,即一切事物均有接口. 1.2 接口的定义 与定义类的class不同,接口定义时需要使用interface关键字. 定义接口所在的仍为.java文件,虽然声明时使用的为interface关键字的编译后仍然会产生.class文件.这

JavaSE入门学习21:Java面向对象之接口(interface)(二)

一接口实现的多态 在上一篇博文:JavaSE入门学习20:Java面向对象之接口(interface)(一)中提到了接口的实现存在多态性,那么 这一篇主要就要分析接口实现的多态. 实例一 Test.java源文件代码: public class Test{ public static void main(String[] args){ //实现接口Singer Singer s1 = new Student("Amy"); s1.sing(); s1.sleep(); s1.study

java抽象类和接口

1.抽象类 抽象类在概念上描述的是抽象世界,抽象类刻画了公有行为的特征,并且通过继承机制传送给它的派生类.抽象类使用关键字abstract 修饰,语法如下: abstract class 类名{ 类体; } 抽象方法是指在抽象类中某些成员方法没有具体的实现,只有方法声明.抽象方法使用关键字abstract 修饰,格式如下: public abstract 返回类型 方法名([参数列表]); 抽象类和抽象方法的具体规则如下: 1.用abstract 关键字修饰一个类时,该类叫做抽象类,用abstr

JAVA学习经验--总结JAVA抽象类和接口

* --总结JAVA抽象类和接口  * 1.抽象类:  *             1>抽象类可以修饰方法,修饰类,但不能修饰属性,不能被实例化  *             2>抽象类可以被继承,只能是单继承,继承抽象类必须实现抽象方法  *             3>抽象类不能被static ,fina,private一起修饰  *             4>抽象类是有多态性的  *  * 2.接口:  *             1>接口是一种特殊的抽象类,不能被实

深入Java核心 Java中多态的实现机制(1)

多态性是Java面向对象的一个重要机制,本文将向您详细介绍Java语言中多态性的实现原理和方法,通过多态一点带出更多Java面向对象有趣而实用的知识. 多态性是面向对象程序设计代码重用的一个重要机制,我们曾不只一次的提到Java多态性.在Java运行时多态性:继承和接口的实现一文中,我们曾详细介绍了Java实现运行时多态性的动态方法调度:今天我们再次深入Java核心,一起学习Java中多态性的实现. “polymorphism(多态)”一词来自希腊语,意为“多种形式”.多数Java程序员把多态看

Java中的接口

以下内容引用自http://wiki.jikexueyuan.com/project/java/interfaces.html: 接口是抽象方法的集合.如果一个类实现了一个接口,那么就需要继承这个接口中的所有抽象方法. 接口不是类.写一个接口和写一个类很相似,但是它们是两个不同的概念.类是描述一个对象的成员属性和行为.接口只包含一个类所实现的行为. 除非实现了接口的类是抽象的,否则接口中的所有方法都需要在类中实现. 在以下方面,接口和类非常相似: 一个接口可以包含任意数量的方法. 一个接口以.j

Java中多态的一些简单理解

什么是多态 1.面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是为多态而准备的.这是我们最后一个概念,也是最重要的知识点. 2.多态的定义:指允许不同类的对象对同一消息做出响应.即同一消息可以根据发送对象的不同而采用多种不同的行为方式.(发送消息就是函数调用) 3.实现多态的技术称为:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法. 4.多态的作用:消除类型之间的耦合关系. 5.现实中,关于多态的例子不

个人对Java中多态的一些简单理解

什么是多态 面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是为多态而准备的.这是我们最后一个概念,也是最重要的知识点. 多态的定义:指允许不同类的对象对同一消息做出响应.即同一消息可以根据发送对象的不同而采用多种不同的行为方式.(发送消息就是函数调用) 实现多态的技术称为:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法. 多态的作用:消除类型之间的耦合关系. 现实中,关于多态的例子不胜枚举. 下面是多态