java--13

1.静态常数

接口中可以定义 成员变量 但必须使用 public static final 关键字修饰,从效果上看 就相当于一个常量
(1)接口的常量 用public static final 类修饰, 是可以省略三个关键字
(2)静态常数相当于常量,因此只能初始化的生活进行赋值, 后面不能更改
(3)建议命名格式用大写字母加下划线

public interface inpuctli {
	public static final int NUM_OF_CLASS=5;

}

2.接口的注意事项

(1)接口中是没有构造方法 和静态代码块
(2)一个类直接父类只有一个; 但是一个类可以实现多个接口
(3)如果现实类 所现实的多个接口中,存在重复的抽象方法 那么之需要写一一次即可
(4)如果实现类没有覆盖重写所有接口当中所有抽象方法,那么实现类必须是一个抽象类
(5)如果实现类所 实现的多个接口中, 存在重复的默认方法产生冲突,那么实现类一定要对方法进行覆盖重写
(6)一个类直接父类当中的方法 和接口当中的 认方法产生了冲突,优先使用符类中的方法

课堂示例

package day13.demo02;

public interface MyInterfaceA {
	public abstract void methodA();
	public abstract void methodAbs();
	public default void methodDefault() {
		System.out.println("默认方法A");
	}
}

package day13.demo02;

public interface MyInterfaceB {
	public abstract void methodB();
	public abstract void methodAbs();
	public default void methodDefault() {
		System.out.println("默认方法B");
	}
}
package day13.demo02;

public interface MyInterface {
	public default void method() {
		System.out.println("我是接口里的默认方法");
	}
}
package day13.demo02;

public class MyInterfaceImpl implements MyInterfaceA,MyInterfaceB{
	@Override
	public void methodB() {
		
	}

	@Override
	public void methodA() {
		
	}

	@Override
	public void methodAbs() {
		
	}
	@Override
	public void methodDefault() {
		MyInterfaceA.super.methodDefault();
	}

}
package day13.demo02;

public class Zi extends Fu implements MyInterface{
	
}
package day13.demo02;

public class Demo02Interface {
	public static void main(String[] args) {
		Zi zi=new Zi();
		zi.method();
	}
}

3.类的继承与接口继承的区别

(1)类和类之间的是但继承 直接继承父类只有一个
(2)类和接口之间是多实现 一个类是可以实现多个接口
(3)接口和接口之间可多继承
注意
(1)多个父类中的抽象方法如果重写,没有错误
(2)多个父类接口当中的默认方法重复

package day13.demo03;

public interface MyInterfaceA {
	public abstract void methodA();
	public abstract void methodCommon();
	public default void methodDefault() {
		System.out.println("AAAA");
	}
}
package day13.demo03;

public interface MyInterfaceB {
	public abstract void methodB();
	public abstract void methodCommon();
	public default void methodDefault() {
		System.out.println("BBBB");
	}
}
package day13.demo03;

public interface MyInterface extends MyInterfaceA,MyInterfaceB{
	public abstract void method();
	@Override
	default void methodDefault() {
		MyInterfaceA.super.methodDefault();
	}
	
}
package day13.demo03;

public class MyInterfaceImpl implements MyInterface{

	@Override
	public void methodA() {
		
	}

	@Override
	public void methodCommon() {
		
	}

	@Override
	public void methodB() {
		
	}

	@Override
	public void method() {
		
	}
	
}

4.java中4种权限修饰符

                      public    protected    (default)    private

同一个类中(我自己)       yes       yes          yes          yes
同一个包中(我的邻居)     yes       yes          yes          no
同一个包中的子类(儿子)   yes       yes          yes          no
不同包下的子类(二儿子)   yes       yes          no           no
不同包下的非子类(陌生人) yes       no           no           no

4.1、同一个类中(我自己)

package day13.demo04;

public class MyClass {
	public int num1=5;
	protected int num2=5;
	int num3=5;
	private int num4=5;
	
	public void method1() {
		System.out.println(num1);
	}
	public void method2() {
		System.out.println(num2);
	}
	public void method3() {
		System.out.println(num3);
	}
	public void method4() {
		System.out.println(num4);
	}
	
}

4.2、同一个包中(我的邻居)

package day13.demo04;

public class MyAnother {
	public void anotherMthode() {
		MyClass myclass=new MyClass();
		System.out.println(myclass.num1);
		System.out.println(myclass.num2);
		System.out.println(myclass.num3);
		//System.out.println(myclass.num4);    错误
	}
}

4.3、同一个包中的子类(儿子)

package day13.demo04;

public class MySon1 extends MyClass{
	public void anotherMthode() {
		System.out.println(super.num1);
		System.out.println(super.num2);
		System.out.println(super.num3);
		//System.out.println(myclass.num4);    错误
	}
}

4.4、不同包下的子类(二儿子)

package day13.demo05;

import day13.demo04.MyClass;

public class MySon2 extends MyClass{
	public void method() {
		System.out.println(super.num1);
		System.out.println(super.num2);
		//System.out.println(super.num3);      错误
		//System.out.println(myclass.num4);    错误
	}
}

4.5、不同包下的非子类(陌生人)

package day13.demo05;

import day13.demo04.MyClass;

public class Stranger {
	public void anotherMthode() {
		MyClass myclass=new MyClass();
		System.out.println(myclass.num1);
		//System.out.println(myclass.num2);    错误
		//System.out.println(myclass.num3);    错误
		//System.out.println(myclass.num4);    错误
	}
}

2020080605012

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值