java继承和抽象

继承

继承的概述

继承的好处:共性抽取,提高代码的复用性

 

一旦发生继承关系:

子类可以使用父类的(非private修饰的)变量和方法(可继承)

子类也可以有自己独有的变量和方法

继承的格式

public class 子类 extends 父类{

 

}

 

//遵循 is a ---> 子类是一个父类

//子类和父类是一个相对的概念

继承中成员变量的访问特点

子类和父类有同名的成员变量时谁优先:

等号左边是谁,就优先用谁,没有则向上找

区分子类方法中同名的三种变量

局部变量 直接使用

子类成员变量 this

父类成员变量 super

继承中成员方法的访问特点

对象创建的是谁,就用谁的方法,如果没有则向上查找。

 

继承中方法的覆盖重写注意事项

重载:在同一个类中,方法名相同,参数项不同。和修饰符返回值无关。

 

覆盖重写:

在继承关系下,方法名相同,参数列表相同。

子类方法的返回值和父类方法的返回值相同或者是父类返回值的子类 //多态

子类修饰符 >= 父类修饰符

public > protected > 默认 > private

 

 

 

 

 

 

 

 

 

                当前类中 当前包中 不同包有子父类关系 不同包非子父类

private      Y             N               N             N

默认          Y             Y               N             N

protected  Y             Y                Y            N

public        Y            Y                 Y            Y

 

 

 

 

  1. 继承中构造方法的访问特点

回顾:

1.如果没有显示的写一个构造方法,那么会默认赠送一个无参数的构造方法

2.如果显示的写了一个构造方法,那么不再赠送

3.构造方法可以重载

 

在继承关系下,构造方法的特点:

1.在子类的构造方法中,不显示的写,默认会赠送一个super();无参数

super():调用父类无参数的构造方法

2.如果你显示的写了一个super(参数列表);那么不再赠送

3.super(参数列表);必须是第一个语句。

 

在创建子类对象的时候,父类对象已经先创建出来了。

super关键字的三种用法

super.父类成员变量;

super.父类成员方法(参数列表);

super(参数列表); //只能写在子类的构造方法中

this关键字的三种用法

this.成员变量;

this.成员方法(参数列表);

this(参数列表); //调用本类的其他构造方法

//只能写在构造方法中

//只能是构造方法的第一个语句,不能和super()同时存在

Java继承的三个特点

Java继承是单继承:一个子类只能有一个直接父类

Java是多级继承

一个父类可以有多个子类

抽象

抽象方法和抽象类的格式

public abstract 返回值类型 方法名(参数类表);

public abstract class 类名{}

 

抽象方法必须写在抽象类中,抽象类中可以有抽象方法,也可以有非抽象方法。

抽象方法和抽象类的使用

抽象类不能直接创建对象,创建子类的对象

子类必须覆盖重写抽象父类的所有抽象方法,除非"子类也是抽象类"。

抽象方法和抽象类的注意事项

a.抽象类不能直接创建对象

b.抽象类可以有构造方法

c.抽象方法必须写在抽象类中,抽象类中可以有抽象方法,也可以有非抽象方法。

d.子类必须覆盖重写抽象父类的所有抽象方法,除非子类也是抽象类

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值