彦舜原创,CSDN首发:Interface入门,及其几个特点详解

/**
 * 
 */
package cn.yanshun.interfaces;

/**
 * @author yanshun——彦舜
 *
 */
//这个类用来测试接口的特点
public class Test01_Interface {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//创建对应实例化类对象,使用测试类,关键字new
		//new Son().hate();    Cannot instantiate type Son————原因:此为抽象子类,无法被外界实例化对象,调用类中资源
		new Son2().hate();
		new Son2().love(520);
		new Son2().sky();
		new Son2().love();
		new Son2().letter();
	}
}

//特点1:通过interface关键字创建接口
interface Interface{
	//特点2:接口中都是抽象方法,关键字abstract
	//特点4:接口是一个特殊的抽象类:接口中全是抽象方法,不包含任何普通方法,类的修饰符却不是abstract,而是interface
	abstract public void love();
	public abstract void love(int n);
	abstract void hate();
	//legal modifier for the interface method sky; only public, abstract, default, static and strictfp are permitted
	public abstract void sky();
}

//创建多个超类,即接口,目的是突破java单继承的局限性:特点5——接口突破了java单继承的局限性
//接口中可有抽象方法,也可以没有任何抽象方法
interface Interface2{
	abstract void love2();
	public abstract void today();
}

//创建多个超类,即接口,目的是突破java单继承的局限性:特点5——接口突破了java单继承的局限性
//接口中可有抽象方法,也可以没有任何抽象方法
interface Interface3{
	
}

//创建多个超类,即接口,目的是突破java单继承的局限性:特点5——接口突破了java单继承的局限性
//接口中可有抽象方法,也可以没有任何抽象方法
interface Interface4{
	
}

//创建子类,普通类
//特点3:子类通过implements实现接口:两种实现方式————make type abstract   +   add unimplemented methods
//创建多个超类,即接口,目的是突破java单继承的局限性:特点5——接口突破了java单继承的局限性
//接口中可有抽象方法,也可以没有任何抽象方法
//class Son implements Interface{
abstract class Son implements Interface, Interface2, Interface3{
	//接口中还得注意:方法重写的修饰符可见性,必须大于等于接口中抽象方法的修饰符:Cannot reduce the visibility of the inherited method from Interface
	 @Override
	public void hate() {
		System.out.println("今天天气真好,不过下了点小雨");
	}
	
	@Override
	public void love() {
		System.out.println("今天天气一般,你觉得呢");
	}
	
	//抽象子类中覆写特点不变
//	@Override
//	public void sky() {
//		System.out.println();
//	}
}
 
class Son2 implements Interface{

	@Override
	public void love(int i) {
		// TODO Auto-generated method stub
		System.out.println(i);
	}

	@Override
	public void hate() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void sky() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void love() {
		// TODO Auto-generated method stub
		
	}
	
	public void letter() {
		System.out.println("想你就写信");
	}
}

//创建多个超类,即接口,目的是突破java单继承的局限性:特点5——接口突破了java单继承的局限性
//接口中可有抽象方法,也可以没有任何抽象方法
abstract class Son3 implements Interface, Interface2, Interface3{
	
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值