• 《java入门第一季》之面向对象(谈谈接口)


    软件中有接口,这里的接口与硬件中的接口还是有很大区别的。

    这里介绍接口不考虑JDK8的新特性(JDK8开始接口里面可以有非抽象方法了,介绍JDK8新特性可能要到整个第一季写完吧!)

    还是直接进入接口的学习:

    /*
    	接口的特点:
    		A:接口用关键字interface表示	
    			interface 接口名 {}
    		B:类(实现)接口用implements(执行,实现)表示
    			class 类名 implements 接口名 {}
    		C:接口不能实例化,就是说不能凭空的创建对象
    			那么,接口如何实例化呢?
    			按照多态的方式来实例化。//类比多态的方式进行实例化
    		D:接口的子类
    			a:可以是抽象类。但是意义不大。
    			b:可以是具体类。要重写接口中的所有抽象方法。(推荐方案)
    	
    */
    //定义动物培训接口
    interface AnimalTrain {
    	public abstract void jump();
    }
    
    //抽象类实现接口,无意义
    abstract class Dog implements AnimalTrain {
    }
    
    //具体类实现接口,实现特殊的东西.接口实现类
    class Cat implements AnimalTrain {//class 类名 implements 接口名{}
    	public void jump() {
    		System.out.println("猫可以跳高了");
    	}
    }
    
    class InterfaceDemo {
    	public static void main(String[] args) {
    		//AnimalTrain接口是抽象的; 无法实例化
    		//AnimalTrain at = new AnimalTrain();
    		//at.jump();
    		//按照多态的方式来实例化接口。
    		Cat at = new Cat();//自己类
    		at.jump();
    		AnimalTrain a = new Cat();//多态
    		a.jump();
    	}
    }

    /*
    	类与类:
    		继承关系,只能单继承,可以多层继承。
    	类与接口:
    		实现关系,可以单实现,也可以多实现。   class Son extends Object implements Father,Mother {}
    		并且还可以在继承一个类的同时实现多个接口。例如:class Son (extends Student) implements Father,Mother {}
    	接口与接口:
    		继承关系,可以单继承,也可以多继承。
    */
    interface Father {
    	public abstract void show();
    }
    
    interface Mother {
    	public abstract void show2();
    }
    
    interface Sister extends Father,Mother {
    
    }
    
    //class Son implements Father,Mother //多实现
    class Son extends Object implements Father,Mother {
    	public void show() {//实现关系,可以单实现,也可以多实现。
    		System.out.println("show son");
    	}
    	
    	public void show2() {
    		System.out.println("show2 son");
    	}
    }
    
    class InterfaceDemo3 {
    	public static void main(String[] args) {
    		//创建对象
    		Father f = new Son();
    		f.show();
    		//f.show2(); //报错,Father接口中没有show()2所以报错	要想使用可以通过向下转型
    		Mother m = new Son();
    		//m.show(); //报错原因同上
    		m.show2();
    	}
    }


  • 相关阅读:
    SpringMVC_04重定向和转发
    Spring事务声明
    SpringMVC_02_RequestMapping
    SpringMVC_01_初识
    Spring通过mybatis操作数据库
    SpringMVC_03_RestFul
    SpringMVC_05_json数据传输
    退役
    2017ICPC青岛 J.Suffix
    版本不兼容问题(未找到程序集)
  • 原文地址:https://www.cnblogs.com/wanghang/p/6299852.html
Copyright © 2020-2023  润新知