/**
*
*/
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{
}