精华内容
下载资源
问答
  • Java继承概念详细解读

    2020-08-28 13:11:26
    主要介绍了Java继承概念详细解读,涉及继承的概念,合成的语法等相关内容,具有一定借鉴价值,需要的朋友可以参考下。
  • 继承概念特点作用 目标 掌握继承的基本概念 掌握继承的作用 掌握继承的特点 继承的概念 继承机制是面向对象程序设计不可缺少的关键概念是实现软件可重用的根基是提高软件系统的可扩展性与可维护性的主要途径 所谓...
  • Hibernate4_Inheritance_XML 此应用程序演示了如何在 Hibernate 中使用或实现继承概念
  • Java继承概念和关键字

    千次阅读 2019-05-07 20:55:39
    继承概念 继承是java面向对象的三大特征之一,继承可以解决编程中代码冗余的问题,是实现代码重用的重要手段之一。继承是软件可重用性的一种表现,新类可以在不增加自身代码的情况下,通过从现在的类中继承其属性...

    继承的概念
    继承是java面向对象的三大特征之一,继承可以解决编程中代码冗余的问题,是实现代码重用的重要手段之一。继承是软件可重用性的一种表现,新类可以在不增加自身代码的情况下,通过从现在的类中继承其属性和方法,来充实自身内容,这种现象或行为就成为继承。这时候新类就称为子类,现有的类称为父类。
    “继承”是面向对象软件技术当中的一个概念。如果一个类A继承自另一个类B,就把这个A称为“B的子类”,而把B称为“A的父类”。继承可以使得子类具有父类的各种属性和方法,而不需要再次编写相同的代码。在令子类继承父类的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类的原有属性和方法,使其获得与父类不同的功能。另外,为子类追加新的属性和方法也是常见的做法。
    继承关键字
    继承可以使用 extends 和 implements 这两个关键字来实现继承,而且所有的类都是继承于 java.lang.Object,当一个类没有继承的两个关键字,则默认继承object(这个类在 java.lang 包中,所以不需要 import)祖先类。
    1、 extends关键字
    在 Java 中,类的继承是单一继承,也就是说,一个子类只能拥有一个父类,所以 extends 只能继承一个类。
    public class Animal {
    private String name;
    private int id;
    public Animal(String myName, String myid) {
    //初始化属性值
    }
    public void eat() { //吃东西方法的具体实现 }
    public void sleep() { //睡觉方法的具体实现 }
    }

    public class Penguin extends Animal{
    }

    2、implements关键字
    使用 implements 关键字可以变相的使java具有多继承的特性,使用范围为类继承接口的情况,可以同时继承多个接口(接口跟接口之间采用逗号分隔)。
    public interface A {
    public void eat();
    public void sleep();
    }

    public interface B {
    public void show();
    }

    public class C implements A,B {
    }

    3、super 与 this 关键字
    super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类
    this关键字:指向自己的引用。
    在这里插入图片描述
    在这里插入图片描述
    输出结果为:
    在这里插入图片描述
    4、final关键字
    final 关键字声明类可以把类定义为不能继承的,即最终类;或者用于修饰方法,该方法不能被子类重写:
    声明类:
    final class 类名 {//类体}
    声明方法:
    修饰符(public/private/default/protected) final 返回值类型 方法名(){//方法体}

    注:实例变量也可以被定义为 final,被定义为 final 的变量不能被修改。被声明为 final 类的方法自动地声明为 final,但是实例变量并不是 final

    展开全文
  • 继承概念、特点、作用   继承的基本概念:继承指一个对象直接使用另一对象的属性和方法   继承的作用:继承是面向对象语言的重要机制。借助继承,可以扩展原有的代码,应用到其他程序中,而不必重新编写这些...

    继承概念、特点、作用

     

    继承的基本概念:继承指一个对象直接使用另一对象的属性和方法

     

    继承的作用:继承是面向对象语言的重要机制。借助继承,可以扩展原有的代码,应用到其他程序中,而不必重新编写这些代码。

    java语言中,继承是通过扩展原有的类,声明新类来实现的。扩展声明的新类称为子类,原有的类称为父类。

    继承机制规定,子类可以拥有父类的所有属性和方法,也可以扩展定义自己特有的属性,增加新方法和重新定义父类的方法。在软件开发中继承就是子类可以使用从父类继承的属性和方法。子类能吸收已有类的数据属性和行为,并能扩展新的能力。

     

    代码复用

    子类对象可以直接调用父类的属性和方法

     

     //【代码一】  :子类对象可以直接调用父类的方法,强调复用性

    Circle circle=new Circle();  // 创建子类的对象开始调用

    circle.draw();             //子类调用父类的方法

     

     

     

    继承的特点:继承的优缺点 因为大部分是继承而来的 
    很容易修改和扩展已有的实现 

    尽管子类可以集成父类所有的成员和方法,但是不能集成构造方法。

    继承的形式:【访问权限修饰符】【修饰符】子类名  extends  父类名{子类体}

    【代码一】  public class Shape {     //创建父类Shape

    public void draw(){}             //父类的方法

    }

    public class Circle extends Shape{     //创建父类Shape的子类Circle

    public double getDiameter(){     //创建Circle的方法

    return 0;

    }

    }

    继承中构造方法的调用:

    子类构造方法总是先调用父类构造方法

    默认情况下,调用父类无参构造方法

    可以在子类构造方法的第一行,使用super关键字调用父类任意一个构造方法

    1、子类的构造的过程中必须调用其父类的构造方法。

    2、子类可以在自己的构造方法中使用super()调用类的构造方法。

        1)使用this.调用本类的另外的构造方法;

        2)如果调用super,必须写在子类构造方法的第一行。

    3、如果子类的构造方法中没有显示地调用父类的构造方法,则系统默认调用基类中无参数的构造方法。

    4、如果子类构造方法中既没有显示调用父类构造方法,而基类中又没有无参数的构造方法,则编译出错。

     

    this关键字用途

     

     

    this关键字代表自身类的对象,在程序中主要的用途

    使用this关键字在自身构造方法内部引用其它构造方法

    使用this关键字代表自身类的对象

    直接使用this

    使用this关键字引用成员变量

    public void eat() {     //定义了方法吃:吃的是炸酱面

         this.type = "炸酱面";   //引用成员变量

         System.out.println("喜欢吃的主食是:"+this.type);

        }

    在一个类的方法或构造方法内部,可以使用“this.成员变量名”这样的格式来引用成员变量名,常常用来区分同名的成员变量和局部变量。

     

    使用this关键字引用成员方法

     

    在一个类的内部,成员方法之间的互相调用时也可以使用“this.方法名(参数)”来进行引用。

    public class ReferenceObject {

    ReferenceObject instance;

    public void hello(){   

      System.out.println("helloWorld");

    }

    public void sayHello(){

         this.hello();

    }                

    }

     

     

     

    注意:this关键字必须放在非静态方法里面  

    super关键字用途

    super关键字代表父类的引用,在程序中主要的用途

    在子类构造方法中要调用父类的构造方法,需要注意:super语句只能出现在子类构造方法体的第一行。

    当子类方法体中的局部变量或者子类的成员变量与父类成员变量同名时,即子类局部变量覆盖父类成员变量时,用“super.成员变量名”来引用父类成员变量

    当子类的成员方法覆盖了父类的成员方法时,也就是子类和父类有完全相同的方法定义(方法体可以不同),此时,用“super.方法名(参数列表)”的方式访问父类的方法。

    this的区别,this通常指代当前对象,super通常指代父类。

    class Base {

    Base() {

    System.out.println("Base");

    }

    }

     

    public class Checket extends Base {

    Checket() {

    super();      //调用父类的构造方法,一定要放在方法的首个语句

    System.out.println("Checket");

    }

    public static void main(String argv[]) {

    Checket c = new Checket();

    }

    }

     

     

    super调用父类成员变量或方法

    class Country {

    String name;

     

    void value() {

    name = "China";

    }

    }

     

     

     

     

    当子类的方法名或变量和父类相同时,子类中的方法名或变量名会隐藏了父类的方法名或者变量名。

    如果想要使用父类中的这个成员变量或方法,就需要用到super。

    方法覆盖的定义

    子类可以重写父类中某一个方法,称为方法覆盖,也称方法重写,是继承中非常重要的知识点。如果子类需要修改从父类继承到的方法的方法体,就可以使用方法覆盖。

     

    方法覆盖的原则

     

    1、同名                // 父类和子类的自变量名字相同

    2、同参                //父类和子类的自变量下的参数相同

    3、同返回值            

    4、访问权限不能缩小    //类似显性转换

    final修饰符

    1. final修饰属性、局部变量,值不能被修改

    2. final修饰类,不能被继承

    3. final修饰方法,不能被子类覆盖

     

    展开全文
  • 一、基类与派生类的概念 基类(父类):在继承关系中处于上层的类 派生类(子类):在继承关系中处于下层的类 class A; class B; class C:public A //C为A的子类,A为C的父类 { }; class D:public A,public B /...

    一、基类与派生类的概念

    • 基类(父类):在继承关系中处于上层的类
    • 派生类(子类):在继承关系中处于下层的类
    class A;
    class B;
    
    class C:public A  //C为A的子类,A为C的父类
    {
    };
    
    class D:public A,public B  //D为A和B的子类,A和B均为D的父类
    {
    };

    二、类派生列表

    • 派生类通过派生类列表来指出其从哪个(哪些)基类继承而来

    类派生列表的使用规则:

    • ①派生列表不能出现在类的声明时,只能在定义时,原因如下:
      • 一条声明语句的目的是让程序知晓某个名字的存在已经改名字表示一个什么样的实体(如一个类、一个函数、或一个变量等)
    class A;
    class B;
    //class B:public A;  错误
    
    class A{};
    class B:public A{}; //正确
    • ②要继承的基类必须在本类之前定义而非声明,原因如下:
      • 派生类必须知道其从基类继承而来的成员是什么,如果基类只是一个声明,那么派生类将无从知晓
    class A; //声明
    
    class B:public A{}; //错误
    
    class A{};
    • ③一个类不能派生其自身,原因和②是相同的

    三、继承的基本特点

    • ①一个类可以被多个类继承
    • ②一个类也可以继承于多个类

    四、单一继承

    • 一个类只继承于一个类叫做单一继承
    class A
    {
    
    };
    class B :public A //单一继承
    {
    
    };

    五、多重继承

    • 一个类只继承于多个类叫做多重继承
    class A{};
    
    class B {};
    
    class C :public B, public A //多重继承
    {
    
    };

    六、多级继承

    • 一个子类还可以作为另一个类的父类而派生出另一个子类。在宏观上叫做多级继承
    class A{};
    
    class B :public A
    {};
    
    class C :public B
    {
    
    };

    七、菱形继承

    • 概念:A作为基类,B和C都继承与A。最后一个类D又继承于B和C,这样形式的继承称为菱形继承
    • 菱形继承的缺点:
      • 数据冗余:在D中会保存两份A的内容
      • 访问不明确(二义性):因为D不知道是以B为中介去访问A还是以C为中介去访问A,因此在访问某些成员的时候会发生二义性
    • 缺点的解决:
      • 数据冗余:通过下面“虚继承”技术来解决(见下)
      • 访问不明确(二义性):通过作用域访问符::来明确调用。虚继承也可以解决这个问题

    演示案例

    class A
    {
    public:
        A(int a) :m_a(a) {}
        int getMa() { return m_a; }
    private:
        int m_a;
    };
    
    class B :public A
    {
    public:
        B(int a, int b) :A(a), m_b(b) {}
    private:
        int m_b;
    };
    
    class C :public A
    {
    public:
        C(int a, int c) :A(a), m_c(c) {}
    private:
        int m_c;
    };
    
    class D :public B, public C
    {
    public:
        D(int a, int b, int c, int d) :B(a, b), C(a, c), m_d(d) {}
        void func()
        {
            /*错误,访问不明确
            std::cout << getMa();*/
    
            //正确,通过B访问getMa()
            std::cout << B::getMa();
        }
    private:
        int m_d;
    };

    八、虚继承

    • 虚继承的作用:为了保证公共继承对象在创建时只保存一分实例
    • 虚继承解决了菱形继承的两个问题:
      • 数据冗余:顶级基类在整个体系中只保存了一份实例
      • 访问不明确(二义性):可以不通过作用域访问符::来调用(原理就是因为顶级基类在整个体系中只保存了一份实例)
    • 虚继承不常用,也不建议使用
    class A
    {
    public:
        A(int a) :m_a(a) {}
        int getMa() { return m_a; }
    private:
        int m_a;
    };
    
    class B :virtual public A
    {
    public:
        B(int a, int b) :A(a), m_b(b) {}
    private:
        int m_b;
    };
    
    class C :virtual public A
    {
    public:
        C(int a, int c) :A(a), m_c(c) {}
    private:
        int m_c;
    };
    
    class D :virtual public B, virtual public C
    {
    public:
        D(int a, int b, int c, int d) :B(a, b), C(a, c), m_d(d) {}
        void func()
        {
            //都正确,因为A的内容在整个继承体系中只保存了一份
            std::cout << getMa();
            std::cout << A::getMa();
        }
    private:
        int m_d;
    };

     

    展开全文
  • 面向对象之_继承概念

    千次阅读 2019-01-01 09:22:01
    1,如果多个类具有相同的属性和行为,我们可以抽取出共性的内容定义父类,这时再创建相似的类时只要继承父类即可。 子类拥有父类的所有属性与方法,无需重新定义。并且可以直接使用非私有的父类成员。 从逻辑关系来看...

    1,如果多个类具有相同的属性和行为,我们可以抽取出共性的内容定义父类,这时再创建相似的类时只要继承父类即可。

    子类拥有父类的所有属性与方法,无需重新定义。并且可以直接使用非私有的父类成员。
    从逻辑关系来看,子类必须属于父类的一种时,才应该继承,且在原有基础上进行功能扩展。

    在这里插入图片描述

    继承关系的产生通常是为了定义出功能更为具体、更为强大的子类。所以,定义子类后,一般创建子类对象使用。子类可以直接使用父类非私有的成员变量与成员方法。
    (注:如果成员变量没有使用private修饰,则子类也可直接访问。)

    2,Java当中的继承格式:

    public class 子类 extends 父类{
    	//父类的非私有方法与属性均继承过来,可以直接调用
    	//可以在父类的基础上扩展方法
    }
    
    如:
    父类的定义:
    public class Person{
    	//父类的成员变量
    	private String name;
    	//父类的方法
    	public void eat(){
    		System.out.println(“吃饭”);
    	}
    }
    子类继承父类的定义:
    public class Chinese extends Person{
    
    	//继承的同时,可以定义子类特有的方法
    	public void sleep() {
    		System.out.println(“睡觉”);
    }
    }
    

    3,继承注意事项

    • Java只支持单继承,不支持多继承。即只能有一个父类。
    • 父类可以继续有父类。
    • 所有类均有父类,只有Object类没有父类。
    • 在所有使用父类类型的地方均可以传入其子类对象。
    • 子类访问父类非私有化成员变量

    4.继承后内存图

    以Person类为例:
    定义父类

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class Person {
    	private String name;
    	private int age;
    
    }
    
    定义子类
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class Chinese extends Person{
    	private Stirng address;
    
    	
    }
    	
    定义测试类,使用子类创建对象
    public class Test{
    	Chinese c = new Chinese();
    }
    

    在这里插入图片描述

    展开全文
  • 继承是面向对象编程的基本概念之一
  • 在公有继承,保护继承,私有继承中都可以使用隐式的向上类型转换(换句话说,基类指针或者引用可以指向派生类对象).,这个理解正确吗? 2>摘自<<C++ primer plus> [b]只能将RTTI用于包含虚函数的层次结构,...
  • 继承概念与方法的重写小结

    千次阅读 2011-11-12 14:13:08
    1. extends :英文的意思是扩展而不是继承,很好的体现了子类与父类的关系,子类是对父类的扩展,从这个意义上看,使用继承来描述子类与父类的关系是错误的,用扩展更恰当。 在继承的基础上才又方法的重写(子类,...
  • Python-继承概念

    千人学习 2017-08-22 20:46:00
    深入了解继承的关系以及概念
  • 继承是多重继承特有的概念,这里需要明确的是,虚继承与虚函数继承是完全不同的概念。 虚继承是为解决多重继承而出现的,可以节省内存空间 举例: 类c4继承自类c2和类c3,类c2继承自类c1,类c3页继承自类c1...
  • 主要介绍了java继承概念及案例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 继承概念及理解

    千次阅读 2019-03-10 18:29:08
    概念 一个类继承另一个类,则称继承的类为子类,被继承的类为父类。 目的 实现代码的复用。 理解 子类与父类的关系并不是日常生活中的父子关系,java语言种子类与父类而是一种特殊化与一般化的关系,是is-a的...
  • java继承及多态概念PPT

    2019-04-22 19:07:47
    本PPT对java继承的基本概念,语法及应用进行了讲解。在继承的基础上进一步讲解了由继承引出的方法重写及上塑造性,最后引出多态的概念以及相关代码实例
  • 继承概念及其意义

    千次阅读 2019-09-25 14:07:15
    继承概念及其定义 1.继承概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向...
  • Java中继承概念

    千次阅读 2015-05-08 11:51:30
    继承概念继承指的是一个类从另一个类从获得属性和方法的过程,它们的关系可以看做是父子的关系,一个父类,一个子类。 继承只能是单继承的,就如一个父亲可以有多个孩子,但是一个孩子不能有多个父亲一样。 ...
  • JS中继承概念

    2019-05-06 16:47:39
    JS中继承概念: 通过【某种方式】让一个对象可以访问到另一个对象中的属性和方法,我们把这种方式称之为继承 并不是所谓的xxx extends yyy 为什么要使用继承? 有些对象会有方法(动作、行为),而这些方法都是...
  • Java继承概念和实现

    千次阅读 2018-06-03 17:47:37
    继承时类和类之间的关系,是一个很简单很直观的概念,与显示生活中的继承(例如儿子继承了父亲财产)类似。继承可以理解为一个类从另一个类中获取方法和属性的过程。如果类B继承于类A,那么类B就拥有类A的属性和方法...
  • Java继承概念的混淆

    千次阅读 2017-04-27 20:29:15
    介绍目的:充分理解到继承和实现的概念继承:Java中,继承只能继承一个类。 实现:Java中,一个类可以实现多个接口。实践interface Intera{}class Bimpl implements Intera{}class CExtend extends Bimpl{}...
  • 关于继承概念、规则、条件以及继承时子类访问父类方法的规则、构造方法。
  • java中继承概念.pptx

    2020-06-11 01:15:39
    继承概念;类的类型;三种类之间的继承规律;三条规律中的约束;为什么要继承;使用继承和组合复用原有的类都是一种增量式的开发模式 这种方式带来的好处是不需要修改原有的代码因此不会给原有代码带来新的BUG也不用...
  • Java继承概念与实现

    千次阅读 2016-12-12 16:14:16
    继承是类与类之间的关系,是一个很简单很直观的概念,与现实世界中的继承(例如儿子继承父亲财产)类似。 继承可以理解为一个类从另一个类获取方法和属性的过程。如果类B继承于类A,那么B就拥有A的属性和方法。 继承...
  • Java继承概念及方法

    千次阅读 多人点赞 2018-01-24 15:59:16
    继承概念 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有...
  • PAGE / NUMPAGES 继承是类与类之间的关系是一个很简单很直观的概念与现实世界中的继承例如儿子继承父亲财产类似 继承可以理解为一个类从另一个类获取方法和属性的过程如果类B继承于类A那么B就拥有A的方法和属性 继承...
  • c++继承概念以及语法

    千次阅读 2019-04-15 16:51:45
    继承是类与类之间的关系,是一个很简单很直观的概念,与现实世界中的继承类似,例如儿子继承父亲的财产。 继承可以理解我一个类从另一个类获取成员变量和成员函数的过程,例如类B继承类A,那么B就用于A的成员变量...
  • 直观的、简单的说明继承概念,让初学者能够更好的理解和使用继承

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 510,081
精华内容 204,032
关键字:

继承的概念