package java基础错误;

//错误一
abstract class Name {
	private String name;
//	public abstract boolean isStupidName(String name){}//申明抽象的方法不能实现,必须通过继承才能实现
	public abstract boolean isStupidName(String name);
}
package java基础错误;

//错误一
abstract class Name {
	private String name;
//	public abstract boolean isStupidName(String name){}//申明抽象的方法不能实现,必须通过继承才能实现
	public abstract boolean isStupidName(String name);
}



package java基础错误;

//错误二
public class Something{
	void doSomething(){
		//private String str = "";//方法内只能使用终态(不能添加修饰符)
		String str = "";
		int len = str.length();
		System.out.println("len = "+len);
	}
	public static void main(String[] args) {
		new Something().doSomething();
	}
}
package java基础错误;

//错误二
public class Something{
	void doSomething(){
		//private String str = "";//方法内只能使用终态(不能添加修饰符)
		String str = "";
		int len = str.length();
		System.out.println("len = "+len);
	}
	public static void main(String[] args) {
		new Something().doSomething();
	}
}



package java基础错误;

abstract class Something2 {
	//private abstract String doSomething();//抽象的方法不能定义私有的,其它类型的都可以,因为抽象类只能通过继承实现抽象类的方法
	private String doSomething(){
		return "doSomething";		
	}
}
package java基础错误;

abstract class Something2 {
	//private abstract String doSomething();//抽象的方法不能定义私有的,其它类型的都可以,因为抽象类只能通过继承实现抽象类的方法
	private String doSomething(){
		return "doSomething";		
	}
}



package java基础错误;

public class Something3 {
	public int addOne(final int x){
		//return ++x;//final的值不能改变
		return x;
	}
}
package java基础错误;

public class Something3 {
	public int addOne(final int x){
		//return ++x;//final的值不能改变
		return x;
	}
}



package java基础错误;

public class Something4 {
	public static void main(String[] args){
		Other o = new Other();
		new Something4().addOne(o);
		System.out.println(o.i);
	}
	//可改变
	public void addOne(final Other o){
		o.i++;
	}
}
class Other{
	public int i;
}
package java基础错误;

public class Something4 {
	public static void main(String[] args){
		Other o = new Other();
		new Something4().addOne(o);
		System.out.println(o.i);
	}
	//可改变
	public void addOne(final Other o){
		o.i++;
	}
}
class Other{
	public int i;
}



package java基础错误;

public class Something5 {
	//final int i;//final的值必须申明时初始化
	final int i = 1;
	
}
package java基础错误;

public class Something5 {
	//final int i;//final的值必须申明时初始化
	final int i = 1;
	
}



package java基础错误;

public class Something6 {
	public static void main(String[] args){
		Something6 s = new Something6();
		System.out.println("s.doSomething() =  "+s.doSomething());
//		System.out.println("s.doSomething() =  "+doSomething());//静态方法中不能直接访问非静态方法,必须通过实例对象.方法
	}
	public String doSomething(){
		return "Do something....";
	}
}
package java基础错误;

public class Something6 {
	public static void main(String[] args){
		Something6 s = new Something6();
		System.out.println("s.doSomething() =  "+s.doSomething());
//		System.out.println("s.doSomething() =  "+doSomething());//静态方法中不能直接访问非静态方法,必须通过实例对象.方法
	}
	public String doSomething(){
		return "Do something....";
	}
}



package java基础错误;

//接口一
interface Able1 {
	void play();
}
//接口二
interface Able2 {
	void play();
}
//接口三继承 方法同名的两个接口,并
interface Able3 extends Able1, Able2 {
	//任何在interface里声明的interface variable (接口变量, 也可称成员变量),默认为public static final。
	//实际上下面这句为 public static final 多接口方法重名 ball = new 多接口方法重名("PingPang");唯一,不可继承
	多接口方法重名 ball = new 多接口方法重名("AAAAA");
}
//该类实现了接口三
public class 多接口方法重名 implements Able3 {
	private String name;
	public String getName() {
		return name;
	}
	public 多接口方法重名(String name) {
		this.name = name; 
	}
	public void play() {
//		ball = new 多接口方法重名("BBBBB");//这句报错了,因为接口上定义的都为public static final的变量,不可更改!
		System.out.println(ball.getName());
	}
	public static void main(String[] args) {
		/*
		 * 不管这里怎么写,调用的这个方法结果都是接口创建的参数AAAAA
		 */
		Able3 a = new 多接口方法重名("CCCCC");
		a.play();//输出结果为:AAAAA
		多接口方法重名 d = new 多接口方法重名("CCCCC");
		d.play();//输出结果为:AAAAA
		
	}
}
package java基础错误;

//接口一
interface Able1 {
	void play();
}
//接口二
interface Able2 {
	void play();
}
//接口三继承 方法同名的两个接口,并
interface Able3 extends Able1, Able2 {
	//任何在interface里声明的interface variable (接口变量, 也可称成员变量),默认为public static final。
	//实际上下面这句为 public static final 多接口方法重名 ball = new 多接口方法重名("PingPang");唯一,不可继承
	多接口方法重名 ball = new 多接口方法重名("AAAAA");
}
//该类实现了接口三
public class 多接口方法重名 implements Able3 {
	private String name;
	public String getName() {
		return name;
	}
	public 多接口方法重名(String name) {
		this.name = name; 
	}
	public void play() {
//		ball = new 多接口方法重名("BBBBB");//这句报错了,因为接口上定义的都为public static final的变量,不可更改!
		System.out.println(ball.getName());
	}
	public static void main(String[] args) {
		/*
		 * 不管这里怎么写,调用的这个方法结果都是接口创建的参数AAAAA
		 */
		Able3 a = new 多接口方法重名("CCCCC");
		a.play();//输出结果为:AAAAA
		多接口方法重名 d = new 多接口方法重名("CCCCC");
		d.play();//输出结果为:AAAAA
		
	}
}



package java基础错误;


interface ATest{
	int x = 1;//接口的属性默认隐含为 public static final
}
class BTest{
	int x = 2;
}
public class 继承与接口实现问题 extends BTest implements ATest {
	public void pX(){
		System.out.println("当父类与接口的属性同名时,使用接口名.属性名进行访问: "+ATest.x);
		System.out.println("当父类与接口的属性同名时,使用super.属性名进行访问: "+super.x);
	}
	public static void main(String[] args) {
		new 继承与接口实现问题().pX();
	}
}
package java基础错误;


interface ATest{
	int x = 1;//接口的属性默认隐含为 public static final
}
class BTest{
	int x = 2;
}
public class 继承与接口实现问题 extends BTest implements ATest {
	public void pX(){
		System.out.println("当父类与接口的属性同名时,使用接口名.属性名进行访问: "+ATest.x);
		System.out.println("当父类与接口的属性同名时,使用super.属性名进行访问: "+super.x);
	}
	public static void main(String[] args) {
		new 继承与接口实现问题().pX();
	}
}



package java基础错误;

class JieKo{
	protected int method1(int a, int b){
		return 0;
	}
}
public class 类继承Protected接口 extends JieKo{
	/*
	 * 这个是重写父类的方法(可以)
	public int method1(int a, int b){
		return 0;
	}
	*/
	/*
	 * 子类要重写父类的方法不能比父类更低的访问权限
	private int method1(int a, int b){
		return 0;
	}
	*/
	
	/*
	 * 方法重载 方法一样,参数不同,可以自己访问(可以)
	 private int method1(int a, long b) {
		 return 0; 
	 }
	*/
	/*
	 * 不知道怎么回答
	 *
	public short method1(int a, int b){
		return 0;
	}
	*/ 
	/*
	 * 不能是静态的
	static protected int method1(int a, int b){
		return 0;
	}
	*/
	
}
package java基础错误;

class JieKo{
	protected int method1(int a, int b){
		return 0;
	}
}
public class 类继承Protected接口 extends JieKo{
	/*
	 * 这个是重写父类的方法(可以)
	public int method1(int a, int b){
		return 0;
	}
	*/
	/*
	 * 子类要重写父类的方法不能比父类更低的访问权限
	private int method1(int a, int b){
		return 0;
	}
	*/
	
	/*
	 * 方法重载 方法一样,参数不同,可以自己访问(可以)
	 private int method1(int a, long b) {
		 return 0; 
	 }
	*/
	/*
	 * 不知道怎么回答
	 *
	public short method1(int a, int b){
		return 0;
	}
	*/ 
	/*
	 * 不能是静态的
	static protected int method1(int a, int b){
		return 0;
	}
	*/
	
}



package java基础错误;

interface A{
	int x = 0;
}
class B{
	int x = 1;
}
class C extends B implements A{
	public static void main(String[] args) {
//		System.out.println(new C().x);//没有指明哪一个的字段名
	}
}
package java基础错误;

interface A{
	int x = 0;
}
class B{
	int x = 1;
}
class C extends B implements A{
	public static void main(String[] args) {
//		System.out.println(new C().x);//没有指明哪一个的字段名
	}
}



package java基础错误;

interface Playable{
	void play();
}
interface Rounceable{
	void play();
}
interface Rollable extends Playable, Rounceable {
	Ball ball = new Ball("PingPang");
	//ball.getName();//此处不能使用ball对象
}
class Ball {
	private String name;
	
	public Ball(String name){//构造函数
		this.name = name;
	}
	public String getName(){
		return name;
	}
	public void play(){
		//ball = new Ball("Football");//未实例化完整,上面只是借口实例化而已
		Ball ball = new Ball("Football");
		System.out.println(ball.getName());
	}
}
package java基础错误;

interface Playable{
	void play();
}
interface Rounceable{
	void play();
}
interface Rollable extends Playable, Rounceable {
	Ball ball = new Ball("PingPang");
	//ball.getName();//此处不能使用ball对象
}
class Ball {
	private String name;
	
	public Ball(String name){//构造函数
		this.name = name;
	}
	public String getName(){
		return name;
	}
	public void play(){
		//ball = new Ball("Football");//未实例化完整,上面只是借口实例化而已
		Ball ball = new Ball("Football");
		System.out.println(ball.getName());
	}
}