java中的抽象类与接口

package edu.zjut.cxd;

import java.util.Date;



public interface Traffic {
	public void move();
	public int capacity();
	Date date();
	public abstract void init();
}
接口中默认方法为public类型,即使不加public,而不像class,若不加public类型则为package权限。

package edu.zjut.cxd;

import java.util.Date;

public abstract class TrafficImp implements Traffic{

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

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

	@Override
	public int capacity() {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public Date date() {
		// TODO Auto-generated method stub
		return null;
	}
	
	public void owner()
	{
		System.out.println("it's own to cxd");
	}
	
	abstract void abc();
	
}
此处abc()方法则为package权限,抽象类中可以含有0个或多个抽象方法。date()方法在使用了接口时默认添加上了public

package edu.zjut.cxd;

public class TrafficImp2 extends TrafficImp {

	@Override
	 void abc() {
		// TODO Auto-generated method stub
		System.out.println("cxd");
	}

	
}
@Override abc方法时,权限仍为package

package edu.zjut.cxd2;

import edu.zjut.cxd.TrafficImp2;

public class TrafficImp2Test {
	
	public static void main(String[]agrs)
	{
		TrafficImp2  traffic = new TrafficImp2();
		traffic.date();
		traffic.abc();
	}

}
traffic.date();traffic.abc();此处traffic.abc();下有波浪线,该方法为package权限不能被访问,date()方法则可以正常访问。包目录结构如下:

包目录结构如下:


你可能感兴趣的:(JAVA)