抽象类和接口中抽象方法的访问权限问题。

1.抽象类中的方法不可以被private修饰。

抽象方法的目的是为了被重写的,如果定义了private,(就已经被隐式的设置为final)那么继承该抽象类的类就不能访问重写该抽象方法了。也就是说所定义的私有抽象方法一点意义也没有。

实现类重写重写方法的规则和继承重写的规则相同:重写方法访问修饰符的权限必须大于等于父类抽象方法,返回值和抛出的异常类型必须小于等于父类抽象方法。

抽象类继承抽象类时,抽象父类的抽象方法不一定需要被被重写。

public abstract class Abstract {
	
	abstract void method1();
	void method2() {
		System.out.println("普通方法二");
	}
	
}


abstract class Child extends Abstract{ //抽象类继承抽象类不需要一定重写抽象父类的抽象方法
    //不会报错
}


class Test2 extends Child{

	

	@Override
	void method1() {
		System.out.println("shuchu ");
		
	}
	
}



2.接口的中的方法默认均为public abstract。

接口的方法都是抽象方法 不可以被除了public外其他的修饰符修饰,因为接口是一种约束和规范,是一种更加更高级的抽象类,抽象类的方法必须是公开的,因为要让其他类继承和使用。
由于实现类重写接口中的抽象方法,重写的方法必须遵循规定,重写方法访问权限大于等于抽象方法,所以重写方法的访问修饰符也一定时public

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值