java中继承性的含义_java子类能继承父类的私有属性吗

java中继承性的含义_java子类能继承父类的私有属性吗目录一、何为类的继承性?继承一般是指晚辈从父辈那里继承财产,也可以说是子女拥有父母给予他们的东西

目录

一、何为类的继承性?

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

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

减少了代码的冗余,提高了代码的复用性

便于功能的扩展

为之后多态性的使用,提供了前提

图示:

8bf9c2cd5c965984131b78bd1078e469.png

三、继承性的格式

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中类的单继承性:一个类只能有一个父类

子父类是相对的概念。

子类直接继承的父类,称为:直接父类。间接继承的父类称为:间接父类

子类继承父类以后,就获取了直接父类以及所间接父类中声明的属性和方法

图示:

852e311191799356ad670d1d0eab4877.png

六、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中继承性的含义_java子类能继承父类的私有属性吗分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/82282.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注