JavaSE语法之八:继承(超全!!)

一、继承的概念

Java中使用类对现实世界中实体来进行描述,类经过实例化之后的产物对象,则可以用来表示现实中的实体,现实世界错误复杂,事物之间可能会存在一些联系,比如:狗和猫,它们都是一个动物。
按我们之前学到,猫和狗有一些相同的动物属性,代码写起来就比较冗余,所以引出继承。

继承(inheritance)机制:是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加新功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构, 体现了由简单到复杂的认知过程。继承主要解决的问题是:共性的抽取,实现代码复用。

继承最大的意义:对代码可以进行复用。
子类 extends 父类:is-a 的关系

二、继承的语法

修饰符 class 子类 extends 父类 {
// …
}

// Animal.java
public class Animal{
   
	String name;
	int age;
	public void eat(){
   
		System.out.println(name + "正在吃饭");
	}
	public void sleep(){
   
		System.out.println(name + "正在睡觉");
	}
}

// Dog.java
public class Dog extends Animal{
   
	void bark(){
   
	System.out.println(name + "汪汪汪~~~");
}
// Cat.Java
public class Cat extends Animal{
   
	void mew(){
   
	System.out.println(name + "喵喵喵~~~");
	}
}
// TestExtend.java
public class TestExtend {
   
	public static void main(String[] args) {
   
		Dog dog = new Dog();
	// dog类中并没有定义任何成员变量,name和age属	性肯定是从父类Animal中继承下来的
		System.out.println(dog.name);
		System.out.println(dog.age);
		// dog访问的eat()和sleep()方法也是从Animal中继承下来的
		dog.eat();
		dog.sleep();
		dog.bark();
	}
}

注意:

  1. 子类会将父类中的成员变量或者成员方法继承到子类中;
  2. 子类继承父类之后,必须要新添加自己特有的成员,体现出与基类的不同,否则就没有必要继承了。

三、父类成员访问

1.子类中访问父类的成员变量

(1)子类和父类不存在同名成员变量
子类又有,就拿子类的;子类没有,就拿父类的。

//父类
public class Base {
   
	int a;
	int b;
}

//子类
public class Derived extends Base{
   
	int c;
	
	public void method(){
   
		a = 10; // 访问从父类中继承下来的a
		b = 20; // 访问从父类中继承下来的b
		c = 30; // 访问子类自己的c
	}
}

(2)子类和父类成员变量同名
如果父类和子类有重名的成员变量,优先使用子类的(就近原则)。

//父类
public class Base {
   
	int a = 1;
	int b = 2;
	int c = 3;
}
//子类
public class Derived extends Base{
   
	int a; // 与父类中成员a同名,且类型相同
	char b; // 与父类中成员b同名,但类型不同
	
	public void method(){
   
		a = 100; // 访问子类自己新增的a
		b = 101; // 访问子类自己新增的b
		c = 102; // 子类没有c,访问的肯定是从父类继承下来的c
	// d = 103; // 编译失败,因为父类和子类都没有定义成员变量b

	super
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值