JAVA入门教程:(九)继承

简单粗暴的讲,你继承了你爸,你爸的电脑、汽车、手机你都可以用,而你自己又有自行车、柜子、洗衣机,你儿子又继承了你,你儿子不仅能用你的自行车、柜子、洗衣机,还能用他爷爷的电脑、汽车、手机。

java中的继承也类似,使用extends关键字。假设有A、B、C三个类,A类有a属性a方法,B类有b属性b方法、C类有c属性c方法,如果这些属性跟方法都是public的,B继承A的情况下,B可以直接使用A的属性和方法,C继承B的情况下,C可以使用B的属性和方法。

//定义ClassA作为父类
public class ClassA {
	
	String a = "a";
	private String aa = "aa";
	
	public void a() {
		
	}
	private void aa() {
		
	}
}
//定义ClassA作为子类继承ClassA
class ClassB extends ClassA {
	
	String b = "b";
	private String bb = "bb";
	
	public void b() {
		
	}
	private void bb() {
		
	}
	
	public void bbb() {
		System.out.println(a); //直接使用父类的属性
		System.out.println(aa); //父类的属性是私有的,使用会报错
		a(); //直接使用父类的方法
		aa(); //父类的方法是私有的,使用会报错
	}
}

下图展示了java中的继承方式

如上图所示,在java中一个子类只能继承一个父类,不可以同时继承多个父类。

继承有什么用?其实在实际开发中基本上不会让一个类继承某个类,但是继承又无处不在。比如在API中搜Integer,可以看到这个类继承了Number类,Number类又继承了Object类。(图1)

(图1)

实际上所有的类都继承了Object类,Object是所有类的父类。就例如我们上面这个代码,虽然没有写extends Object,但是默认是继承Objecrt的。

(图2)

如上图,ClassA中并没有左边红框的方法,但是我们却能点出来,右面的红框说明了该方法来自Object类。

还有一种情况,假如父类和子类的方法名一样,我们可以在子类中通过super关键字调用父类的方法。

定义两个类:

public class ClassA {
	
	public void p() {
		System.out.println("我是ClassA");
	}
}
public class ClassB extends ClassA{
	
	public void p() {
		System.out.println("我是 ClassB");
	}
	
	public void test() {
		p(); //调用自身的方法
		super.p(); //调用父类的方法
	}
	
	public static void main(String[] args) {
		
		ClassB classB = new ClassB();
		classB.test();
	}
}

运行:

这种子类跟父类定义成一样的方法名的做法叫方法的重写

以上,就是本节课的内容。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值