java 类、接口基础知识

Java中 private、protected、public和default的区别

作用域当前类同一包类子孙类其他包
publicYYYY
protectedYYYN
defaultYYNN
privateYNNN

类似于倒三角形的样子 注意

  • 上面说的是类的方法属性作用域,default是类属性的默认修饰符。
  • 接口的属性和方法只有public 和default 修饰词。而接口的默认属性是默认是public static final ,方法是public abstract。
  • 新建类的修饰符只有public和默认不选(表示同包可访问),在内部类中可以有其他修饰符

override 和 overload

  • override 重写,表示子类重写了父类的方法

    • 方法名、参数、返回值相同
    • 子类方法不能缩小父类的访问权限
    • 子类方法不能抛出比父类方法更多的异常,但可以不抛出异常
    • 方法被定义成final,static 不能被重写
  • overload 重载 一个类定义多个同名的方法

    • 参数类型,个数不对应
    • 不能通过访问权限、返回类型、抛出的异常进行重载

注意:static方法 官网推荐是直接用类名调用。

 接口 interface

在Java8 中接口也可以定义默认方法与静态方法

import java.util.function.Supplier;

public class testInterfaceMethodes {
	private interface Defaulable {
	    // Interfaces now allow default methods, the implementer may or 
	    // may not implement (override) them.
	    default String notRequired() { 
	        return "Default implementation"; 
	    }        
	}
	private static class DefaultableImpl implements Defaulable {
	}
	private static class OverridableImpl implements Defaulable {
	    @Override
	    public String notRequired() {
	        return "Overridden implementation";
	    }
	}
	private interface DefaulableFactory {
	    // Interfaces now allow static methods
	    public static Defaulable create( Supplier< Defaulable > supplier ) {
	        return supplier.get();
	    }
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Defaulable defaulable = DefaulableFactory.create( DefaultableImpl::new );
	    System.out.println( defaulable.notRequired() );
	         
	    defaulable = DefaulableFactory.create( OverridableImpl::new );
	    System.out.println( defaulable.notRequired() );

	}

}

==>执行结果 Default implementation Overridden implementation

转载于:https://my.oschina.net/u/2369810/blog/902374

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值