Java基础巩固

继承

(1)子类会自动继承父类的所有字段,严禁定义与父类重名的字段
(2)任何类,除了Object,都会继承自某个类。
(3)Java只允许一个class继承自一个类,因此一个类有且仅有一个父类,只有object类特殊,它没有父类。
(4)继承类有个特点,就是子类无法访问父类的private字段或者private方法。用protected修饰的字段可以被子类访问。因此,protected关键字可以把字段和方法的访问控制在继承树内部。
(5)如果父类没有默认的构造方法,子类就必须显示地调用super()并给出参数以便让编译器定位到父类的一个合适的构造方法。子类不必继承任何父类的构造方法,子类默认的构造方法是编译器自动生成的,不是继承地。
(6)正常情况下,只要某个class没有final修饰符,那么任何类都可以从该class继承。
(7)把一个子类类型安全地变为父类类型的赋值,被称为向上转型。向上转型实际上是把一个子类型安全地变为更加抽象的父类型。

java中为什么使用向上转型而不是直接创建子对象

(1)把子类对象直接赋给父类引用是向上转型,向上转型自动转换。如Father fater = new Son();
(2)指向子类对象的父类引用赋给子类引用是向下转型,要强制转换。使用向下转型,必须先向上转型,为了安全可以用instanceof运算符判断。例如father是一个指向子类对象的父类引用,把father赋给子类引用son,即Son son = (Son) father。其中father前面的(Son)必须添加,进行强制转换。
(3)向上转型不能使用子类特有的属性和方法,只能引用父类的属性和方法,但是子类重写父类的方法是有效的。
(4)向上转型时会优先使用子类中重写父类的方法。
(5)向上转型的作用是减少重复代码,可以将父类作为参数,这样使代码变得更加简洁,也更好地体现了多态。

多态

(1)java的实例方法调用是基于运行时的实际类型的动态调用,而非变量的声明类型。
(2)多态是指,针对某个类型的方法调用,其真正执行的方法取决于运行时期实际类型的方法。
(3)多态的特性就是,运行时期才能动态决定调用的子类方法。对某个类型调用某个方法,执行的实际方法可能是某个子类的覆写方法。

fianl

(1)继承可以允许子类覆写父类的方法。如果一个父类不允许子类对它的某个方法进行覆写,可以把该方法标记喂final。用final修饰的方法不能被Override。
(2)如果一个类不希望被其他任何类继承,那么可以把这个类本身标记为final。用final修饰的类不能被继承。对于final字段重新赋值会报错,可以再构造方法中初始化final字段,这种方法更为常用,因为可以保证实例一旦被创建,其final字段就不可以被修改。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值