对继承的理解(新手教程)

Java继承(1)

继承的概念

Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。

继承的特点

1、继承的关键字为extends
试举一例吧:

class Dad{
	public void Sleep(){}
	public void Eat(){}
}			
class Son extends Dad{
	public void Cry(){}
}

这样我们就可以很清晰明了的看出来,我们建立的Son类,成功的继承了Dad类。其实继承与我们生活中的继承也是有很大的相似之处的,就比如上面写到的,Dad会Sleep(睡觉)和Eat(吃饭),而一开始只会Cry(哭)的Son继承他之后,也学会了吃饭和睡觉,这是一样的道理。

这里还要提一点哦,java中只能支持单继承!如下面这种情况

Class Xiaoming extends Daming,Laowang{}

这是不行的。由于这段代码中,子类Xiaoming继承于两个父类,也就是Daming和Laowang,所以会出现错误!通俗来说,子类和我们一样,只能有一个亲生爸爸,不能有“Laowang”噢。

2、子类只能继承父类中所有非私有的成员。这个很容易理解啦,如果父类的成员变量,成员方法前面加了private,子类就不能继承。(和爸爸的零花钱一样哦,我们总是不知道在哪里。)

3、继承中成员变量的不同情况
-如果说子类中的成员变量名要是和父类中的成员变量名不一样,那么我们可以直接使用父类的成员变量,没有问题。但是,
-如果说子类中的成员变量名要是和父类中的成员变量名一样,在子类方法中访问我们就需要按照一定的顺序了:
在子类的局部范围找,看有没有,有就用
在子类的成员位置找,看有没有,有就用
在父类的成员位置找,看有没有,有就用
如果还没有就会报错(没有考虑父类的父类)
具体的代码如下哦:

class Dad{
	public int num = 5;
	//父类的成员变量
	public void method(){
		int num = 55;
	}
	//父类的局部方法加粗样式
}
class Son extends Dad{
	//public int num = 555;
	//如果在成员变量中定义num,那么输出的就是555
	public int num2 = 6;
	public void show(){
		//int num = 5555;
		//如果在成员方法中定义num,那么输出的就会是5555
		System.out.println(num);
		//如果在子类中都没有定义num,那么输出的就是父类中的5
		System.out.println(num2);
	}
}
class Demo1{
	public static void main(String[] args){
		Son s = new Son();
		s.show();
	}
}

4、补充第3点,那可能有人会有疑问,如果我就想跳过子类的局部变量使用子类的成员变量,或者我就想跳过子类的局部变量来使用父类的成员变量。那该怎么办?
不用担心!还是有办法的!
这里就要派出两个关键词了,thissuper

class Dad{
	public int num = 5;
	public void method(){
		int num = 55;
	}
}

class Son extends Dad{
	public int num = 555;
	public int num2 = 6;
	public void show(){
		int num = 5555;
		System.out.println(num);
		//这里输出的是成员方法中的局部变量5555
		System.out.println(this.num);
		//这里输入的是子类的成员变量555
		System.out.println(super.num);
		//这里输入的是父类的成员变量5
	}
}
class Demo1{
	public static void main(String[] args){
		Son s = new Son();
		s.show();
	}
}

这只是一部分哦,后面还会继续更新!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值