继承

子类继承父类,子类拥有了父类的所有属性和方法。
  程序验证,父类的私有属性和方法子类是无法直接访问的。当然私有属性可以通过public修饰的getter和setter方法访问到的,但是私有方法不行。
  假设:子类不能够继承父类的私有属性和方法
  那么:分析内存后,会发现,当一个子类被实例化的时候,默认会先调用父类的构造方法对父类进行初始化,即在内存中创建一个父类对象,然后再父类对象的外部放上子类独有的属性,两者合起来成为一个子类的对象。
  所以:子类继承了父类的所有属性和方法或子类拥有父类的所有属性和方法是对的,只不过父类的私有属性和方法,子类是无法直接访问到的。即只是拥有,但是无法使用。

继承

子类继承父类格式:
子类名 extends父类名

继承的作用:
创建新类时假如好几个类都拥有好几个 共同变量和方法
我们就可以将共同拥有的部分创建一个父类,然后在让这几个类继承这些;
就省去很多冗余的代码,节省内存和时间;

可以继承父类中不被private修饰的变量和方法;
用super也不能访问这些私有属性;


在子类中可以用 super关键字  // super代表的是父类对象
访问父类的构造方法:
注意:在子类构造方法中用super调用父类的构造方法必须写在 子类构造方法的第一行
super();// 无参构造方法,可以不用写,默认调用
super(name,num)//有参构造方法,直接输入参数,不用带int,string之类的;

访问父类的属性:
super.name;
super.num;

访问父类的方法:
super.print();// 直接用super调用

在继承条件下的构造方法调用规则:
1假如我们创建的子类 构造 方法中 没有用super调用父类的构造方法
那么就会 默认直接调用父类 无参 构造方法;

2假如 有用super调用父类有参构造方法;
就会先调用父类 有参 构造方法然后在执行子类(有参/无参看你在那个里面用super调用)构造方法;

3假如子类中用了this调用自己的其它构造方法,
(就会先调用父类 构造方法然后在执行其它子类构造方法,最后自己构造方法)debug

单根继承
1,子类访访问父类或访问父类的父类。。。都用supre可以访问;
2,java只支持单根继承,也就是一个子类只能有一个直接父类,可以有多个间接父类;
(间接父类也就是父类的父类)
(注意我们写程序时继承结构一般在2~3层之间最好)

super和this的作用
super:             //super可以当做父类的对象来看
当super访问属性时:我们是直接访问父类的属性;
当super调用方法时:我们是直接调用父类的方法;
当super调用构造方法时:是直接调用父类的构造方法,必须放在子类构造方法的 首行!


this:  
当this访问属性时:会先访问本类属性,如果没有则从父类中查找;
当this调用方法时:会先调用本类方法,如果没有则从父类中查找;

当this调用构造方法:直接调用本类构造构造方法,放在构造方法首行;
(会用this调用本类构造方法的情况基本是定义的参数有所增加,所以先调用已有的构造方法,在其基础上进行增加)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值