继承与接口

[align=center][b][size=large]继承与接口[/size][/b][/align][size=medium]
1.继承的作用
[list]
[*]避免程序冗余;
[*]实现现实中的相应逻辑关系[/list]
2.如何继承(通过关键字extends实现)
3. 继承到了什么
[list]
[*]子类继承父类的属性和方法
[*]子类也可以有自己的属性和方法,但是只有子类及子类作为父类时的子类才可调用
[*]子类可以重写父类的方法,重写时只改变父类方法的方法体,
即{}内的内容,父类的方法类型和方法名和方法名不变
[*]一个子类只可以继承一个父类,即单根继承。(但一个接口可以继承多个接口)
[/list][color=blue]PS:一个类只允许继承一个父类,单根继承
[i]PS:一个类可以实现多个接口[/color] public interface A{}
public interface B{}
public class C implements A,B{}

一个接口可以继承多个接口
public interface D extends A,B{}[/i]
2.自动转型与强制转型
自动转型:子类类型转换成父类类型,即uns的类型由子类的UNstudent类型转换成Student类型
强制转型:父类类型转换成子类类型,即stu的类型是Student,要将其转换成UNstudent,则要强制转换:UNstudent s=(UNstudengt) stu (强制转换会出现逻辑错误)

3.重写与重载的理解
重写:指子类对父类方法的重写,仅改变父类方法的方法体
重载:指相同的方法名,但参数类型和参数个数不同

4.重写与继承时要注意的问题
(1)一个对象只能调用其已经定义及其从父类继承来的属性和方法
(2)当子类重写父类的方法时,子类只调用重写后的方法,父类则不可以;
(3)对象是调用父类的方法还是子类的方法,取决于对象本身的类型。例:
已经实现了UNstudent对Student的继承,UNstudent对方法study进行了重写,则
Student stu = new Student();
Student stu1 = new UNstudent();
UNstudent stu2 = new UNstudent();
stu.study调用父类的方法,stu1.study和stu2.study调用子类的方法,取决于new后面的类型
(4)类继承接口时,对象调用父类的方法还是子类的方法,取决于对象本身的类型

5.多态的理解
多态指由于重写和继承机制(前提条件)的运用,导致相同类型的对象调用相同类型的 方法而出现不同的结果。
即:结果的多样性

6.如何定义接口?
可以理解为接口是对类的高度抽象。借助关键字interface,因此,接口可以定义方法,但没有方法体({}内的内容),
即:public abstract void study();

7.接口的特点
(1)接口的属性是公开常量,即必须具备public和有初始值这两个条件
(常量的定义时,默认为[color=red]public static final[/color]+变量类型+变量名)
(2)接口没有构造方法,不能生成(创建,声明,构造)对象
(3)接口中的方法必须是抽象方法,即没有方法体(创建方法时,为public abstract+方法类型+方法名)

8. 接口的作用
(1)定义数据类型
(2)充当父类,便于类扩展

9. 接口的继承
(1)类继承接口时,必须对接口内定义的所有方法完善其方法体(包括接口继承的接口的所有方法;)
(2)一个接口可以继承多个接口

10.如何实现接口
通过关键字implements实现,例: public class C implements A,B{}

这些知识点,虽然很琐碎,但是确实后面写代码不可或缺的知识储备,当我们写的代码越来越多时,如果对这些概念没有清晰的定义,将会对我们的整个代码造成困扰。即“一颗老鼠屎,坏了一锅汤”,所以做好基本功,不是用来哄小孩的。[/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值