2016/2/13 Head First Java 第7节第一部分小结 继承

Java是面向对象的语言,所以从现在开始就要学习面向对象的方法,继承与多态

Java的继承需要关键字extends并且只能继承一个父类,没有多重继承,因为多继承会导致“ 致命方块 ” (度娘走起来)下一节的接口会解决这个问题

首先我们在学习这个之前都要问为什么学这个?这个有什么意义?

继承的意义就在于可以避免了重复的程序代码,如果想要改变这个行为程序时,只需要修改这个地方,

而子类就会发生同样的改变

开始继承的学习

首先推荐看慕课网Java入门第二季Java入门第二季这个讲的非常简单清晰,有的也会摘抄上面的内容

继承顾名思义就是接受上一辈所传递下来的家业,事物,钱财等,这里继承就是子类继承父类

子类可以继承父类的实例变量和方法,实例变量相当于钱财,方法相当于家业,家业可以进行修改,而对于Java修改就是在子类对这个方法进行覆盖,并且这个方法的内容改变,但是类型,参数,传出都要和父类是一样的

举个栗子:

public class Practice { // 带有public class的文件只能有一个且必须与文件名一致

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		Father father = new Father();
		Son son = new Son();
		father.getAge();
		son.age = 20;
		son.getAge();
	}
}

class Father{
	int age = 38;
	public void getAge(){
		System.out.println("Father :" + age);
	}
}

class Son extends Father{
	// 这个就是在子类中 对 父类的方法进行覆盖
	public void getAge(){
		System.out.println("Son : " + age);
	}
}


super的使用

super是可以调用父类的一个关键字

调用父类的实例变量 就用super.age

调用父类的方法 就用super.getAge()


<span style="font-size:18px;">public class Practice { // 带有public class的文件只能有一个且必须与文件名一致

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		Father father = new Father();
		Son son = new Son();
		son.age = 20;
		son.getAge();
	}
}

class Father{
	int age = 38;
	public void getAge(){
		System.out.println("Father :" + age);
	}
}

class Son extends Father{
	// 这个就是在子类中 对 父类的方法进行覆盖
	public void getAge(){
		super.getAge();// super的用法
		System.out.println("Son : " + age);
	}
}</span>


Object类是所有类的父类,如果某些类没有继承任何类,就是隐式的extends Object 这个Object类我会在下一节好好研究 


先摘抄一下继承这的一些要点,也是书上写的要点

  • 子类是extends父类出来的
  • 子类会继承父类所有public类型的实例变量和方法,但不会继承父类所有private类型的变量和方法
  • 继承下来的方法可以被覆盖掉,但实例变量不能被覆盖掉
  • 当某个方法在子类中子类中被覆盖过,调用这个方法时会调用到覆盖过的版本
  • IS-A的关系我就不写了,这个就是继承的一个测试方法。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值