咸鱼带你学Java—面向对象的特征之二:继承性

目录

一、何为类的继承性?

二、为什么要有类的继承性?

三、继承性的格式

四、子类继承父类以后有哪些不同?

五、Java中继承性的说明

六、java.lang.Object类的理解


一、何为类的继承性?

继承一般是指晚辈从父辈那里继承财产,也可以说是子女拥有父母给予他们的东西。在面向对象程序设计中,继承的含义与此类似,所不同的是,这里继承的实体是类而非人。也就是说,继承是子类拥有父类的成员多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中, 那么多个类无需再定义这些属性和行为,只要继承那个类即可。此处的多个类称为子类(派生类)单独的这个类称为父类(基类或超类)。可以理解为:“子类 is a 父类

二、为什么要有类的继承性?

  1. 减少了代码的冗余,提高了代码的复用性
  2. 便于功能的扩展
  3. 为之后多态性的使用,提供了前提

图示:


三、继承性的格式

class A extends B{ }

说明:

  • A:子类、派生类、subclass
  • B:父类、超类、基类、superclass
public class Student extends Person {//Student继承Person

}

四、子类继承父类以后有哪些不同?

  • 一旦子类A继承父类B以后,子类A中就获取了父类B中声明的所有的属性和方法。 特别的,父类中声明为private的属性或方法,子类继承父类以后,仍然认为获取了父类中私的结构。只因为封装性的影响,使得子类不能直接调用父类的结构而已。
  • 子类继承父类以后,还可以声明自己特有的属性或方法:实现功能的拓展。
  • 子类和父类的关系,不同于子集和集合的关系。
public class Person {
	
	public String name;
	private int age;
	
	public Person(){
		
	}



}


public class Student extends Person {//Student继承Person
    //增加属性,实现类的功能扩展
	private int grade;
	
	public static void main(String [] args) {
		Student s = new Student();
		//name的权限修饰符为public,Student类中可直接调用name
		s.name="Tom";
		//age的权限修饰符private,因此在Student类中不能调用age,只能调用setAge()方法
		s.setAge(24);
		//grade的权限修饰符为private,main()方法在Student类中,可直接调用
		s.grade=100;
		System.out.println(s.name);//Tom
		System.out.println(s.getAge());//24
		System.out.println(s.grade);//100
	}
}

五、Java中继承性的说明

  • 一个类可以被多个子类继承。
  • Java中类的单继承性:一个类只能有一个父类
  • 子父类是相对的概念。
  • 子类直接继承的父类,称为:直接父类间接继承的父类称为:间接父类
  • 子类继承父类以后,就获取了直接父类以及所间接父类中声明的属性方法

图示:

六、java.lang.Object类的理解

  • 如果我们没显式的声明一个类的父类的话,则此类继承于java.lang.Object类
  • 所的java类(除java.lang.Object类之外都直接或间接的继承于java.lang.Object类
  • 意味着,所的java类具有java.lang.Object类声明的功能。
public class Dog {
	
	public static void main(String[] args) {
		Dog d=new Dog();
		//toString是Object类中的方法,因此可说明Dog类是间接继承于Object类的
		d.toString();
	}

}

上一篇:咸鱼带你学Java—package、import关键字

下一篇:咸鱼带你学Java—方法重写(override)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值