精华内容
下载资源
问答
  • 主要介绍了Java接口继承使用接口操作,结合具体实例形式分析了Java接口继承使用的相关原理、操作技巧与注意事项,需要的朋友可以参考下
  • Java继承的特点、好处
  • 继承示例Java 使用Java继承用户输入 这是面向初学者的基于Java的继承示例
  • Java继承的定义与使用

    万次阅读 多人点赞 2018-10-21 12:00:25
    1.2.2 Java只允许单继承不允许多继承(一个子类继承一个父类)1.2.3 在继承时,子类会继承父类的所有结构。阿里java校招笔试题 继承   继承的主要作用在于,在已有基础上继续进行功能的扩充。 定义两个类(学生...

    1.继承

    继承的主要作用在于,在已有基础上继续进行功能的扩充。
    若没有继承:

    class Person {
        private String name;
        private int age;
        public String getName()
        {
            return name;
        }
        public void setName(String name)
        {
            this.name=name;
        }
        public int getAge()
        {
            return age;
        }
        public void setAge(int age)
        {
            this.age=age;
        }
    }
    class Student {
        private String name;
        private int age;
        private String schoolName;
        public String getName()
        {
            return name;
        }
        public void setName(String name)
        {
            this.name=name;
        }
        public int getAge()
        {
            return age;
        }
        public void setAge(int age)
        {
            this.age=age;
        }
        public String getSchoolName()
        {
            return schoolName;
        }
        public void setSchoolName(String schoolName)
        {
            this.schoolName=schoolName;
        }
    }
    

      以上是我们定义类的方式,含有大量重复的代码,java语言一般不允许大量重复的代码出现,这段代码不仅从代码上重复,而且从概念上讲学生一定是人,只是学生类描述的范围小,具备更多的属性和方法,这个时候想要消除结构定义上的重复,就要用到继承。

    1.1 继承的实现

    在Java中,继承用extends关键字来实现,语法:class 子类 extends 父类{}
    所以可将上述代码改为:

    class Person {
        private String name;
        private int age;
        public String getName()
        {
            return name;
        }
        public void setName(String name)
        {
            this.name=name;
        }
        public int getAge()
        {
            return age;
        }
        public void setAge(int age)
        {
            this.age=age;
        }
    }
    class Student extends Person{ 
    }
    public class Test2{
        public static void main(String[] args)
        {
            Student student=new Student();
            student.setName("花花");
            student.setAge(18);
            System.out.println("姓名:"+student.getName()+"  年龄:"+student.getAge());
        }
    }
    

    在这里插入图片描述
      通过以上代码可以发现,当发生了类继承关系之后,子类可以直接继承父类的操作,可以实现代码的重用,子类最低也维持和父类相同的功能。
      子类也可以进行功能上的扩充。

    class Person {
        private String name;
        private int age;
        public String getName()
        {
            return name;
        }
        public void setName(String name)
        {
            this.name=name;
        }
        public int getAge()
        {
            return age;
        }
        public void setAge(int age)
        {
            this.age=age;
        }
    }
    class Student extends Person{
        private String schoolName;
        public String getSchoolName()
        {
            return schoolName;
        }
        public void setSchoolName(String schoolName)
        {
            this.schoolName=schoolName;
        }
    }
    public class Test2{
        public static void main(String[] args)
        {
            Student student=new Student();
            student.setName("花花");
            student.setAge(18);
            student.setSchoolName("励志中学");
            System.out.println("学校:"+student.getSchoolName() +" 姓名:"+student.getName()+"  年龄:"+student.getAge());
        }
    }
    

    继承的主要作用是对类进行扩充以及代码的重用!

    1.2 继承的限制

    1.2.1 子类对象在进行实例化前首先调用父类构造方法,再调用子类构造方法实例化子类对象。

    class Person {
        private String name;
        private int age;
        public String getName()
        {
            return name;
        }
        public void setName(String name)
        {
            this.name=name;
        }
        public int getAge()
        {
            return age;
        }
        public void setAge(int age)
        {
            this.age=age;
        }
        //构造方法
        public Person()
        {
            System.out.println("父类的构造方法");
        }
    }
    class Student extends Person{
        private String schoolName;
        public String getSchoolName()
        {
            return schoolName;
        }
        public void setSchoolName(String schoolName)
        {
            this.schoolName=schoolName;
        }
        //构造方法
        public Student()
        {
            System.out.println("子类的构造方法");
        }
    }
    public class Test2{
        public static void main(String[] args)
        {
            Student student=new Student();
            student.setName("花花");
            student.setAge(18);
            student.setSchoolName("励志中学");
            System.out.println("学校:"+student.getSchoolName() +" 姓名:"+student.getName()+"  年龄:"+student.getAge());
        }
    }
    

    在这里插入图片描述
    实际在子类构造方法中,相当于隐含了一个语句super(),调用父类的无参构造。同时如果父类里没有提供无参构造,那么这个时候就必须使用super(参数)明确指明要调用的父类构造方法。

    1.2.2 Java只允许单继承不允许多继承(一个子类继承一个父类)

    eg:错误的继承:

    class A{
    }
    class B{
    }
    class C extends A,B{
    }
    

    C继承A和B的主要目的是拥有A和B中的操作,为了实现这样的目的,可以采用多层继承的形式完成。

    class A{
    }
    class B extends A{
    }
    class C extends B{
    }
    

      Java中不允许多重继承,但是允许多层继承!多层继承一般不会超过三层

    1.2.3 在继承时,子类会继承父类的所有结构。

    在进行继承的时候,子类会继承父类的所有结构(包括私有属性、构造方法、普通方法)
    显示继承:所有非私有操作属于显示继承(可以直接调用)。
    隐式继承:所有私有操作属于隐式继承(不可以直接调用,需要通过其它形式调用(get或者set))。

    class Person {
        private String name;
        private int age;
        public String getName()
        {
            return name;
        }
        public void setName(String name)
        {
            this.name=name;
        }
        public int getAge()
        {
            return age;
        }
        public void setAge(int age)
        {
            this.age=age;
        }
        public Person()
        {
            System.out.println("父类的构造方法");
        }
        public void fun()
        {
            System.out.println("好好学习。");
        }
    }
    class Student extends Person{
        private String schoolName;
        public String getSchoolName()
        {
            return schoolName;
        }
        public void setSchoolName(String schoolName)
        {
            this.schoolName=schoolName;
        }
        public Student()
        {
            System.out.println("子类的构造方法");
        }
    }
    public class Test2{
        public static void main(String[] args)
        {
            Student student=new Student();
            student.setName("花花");
            student.setAge(18);
            //隐式继承
            System.out.println("姓名:"+student.getName()+" 年龄:"+student.getAge());
            //显示继承
            student.fun();
        }
    }
    

    在这里插入图片描述
      此时父类中的属性以及方法均被子类所继承,但是发现子类能够使用的是所有非private操作,而所有的private操作无法被直接使用,所以称为隐式继承。

    2. 典型例题

    class A{
        public A()
        {
            System.out.println("1.A类的构造方法");
        }
        {
            System.out.println("2.A类的构造块");
        }
        static{
            System.out.println("3.A类的静态方法");
        }
    }
    public class B extends A{
        public B()
        {
            System.out.println("4.B类的构造方法");
        }
        {
            System.out.println("5.B类的构造块");
        }
        static{
            System.out.println("6.B类的静态方法");
        }
        public static void main(String[] args)
        {
            System.out.println("7.start......");
            new B();
            new B();
            System.out.println("8.end.....");
        }
    }
    

    主类中的静态块优先于主方法执行,所以6应该在7前面执行,但是B类继承于A类,所以先执行A类的静态块3,所以进主方法前的执行顺序为:3 6
    进主方法后执行7,new B()之后应先执行A的构造方法然后执行B的构造方法,但由于A类和B类均有构造块,构造块又优先于构造方法执行即 2 1(A的构造家族) 5 4(B的构造家族),有多少个对象,构造家族就执行几次,题目中有两个对象 所以执行顺序为:3 6 7 2 1 5 4 2 1 5 4 8
    在这里插入图片描述

    展开全文
  • 继承Java 使用Java中的继承解决了练习。
  • Java 继承

    千次阅读 多人点赞 2019-05-07 11:12:43
    java继承的概念 Java继承是面向对象的最显著的一个特征。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为, 并能扩展新的能力, 继承使用的是extends 类的继承格式 class 父类 { } class ...

    学而时习之,温故而知新.

    java继承的概念

    Java继承是面向对象的最显著的一个特征。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,

    并能扩展新的能力,

    继承使用的是extends

    类的继承格式

    class 父类 { }

    class 子类 extends 父类 { }

     

    继承的优点:

    1 提高了代码的复用性

    2 提高了代码的维护性

    3 建立了类与类之间的关系,继承是多态的前提。

    继承的缺点:

    1 在一定程度上,造成类与类之间的强关联,即所谓的高耦合。

    2 父类功能的改变对子类也会造成影响。

     

    说下什么地方使用extends 

    案例1

    父类用的一些方法 子类中也使用到了,这个时候就没有必要 在子类中重新写一次

    这个时候就可以 子类 extends 父类  不如 Andorid 中常用的就是继承BaseActivity 了

     

    注意事项:

    Java 不支持多继承

    下面是错误的

    如果想实现a和b里面的方法可以用实现implements 

     

    下面是可以实现的

     

     

    展开全文
  • java封装继承.docx

    2021-03-31 11:59:44
    学习java使用封装继承
  • Java继承

    万次阅读 多人点赞 2019-06-06 17:25:11
    一、概述 面向对象编程中,继承是一个比较重要的概念,继承描述的是事物之间的所属关系...1、继承使用 格式:使用 extends 关键字 ==> class 子类 extends 父类 () 创建 Person 类和 Student 子类:public ...

    一、概述

    面向对象编程中,继承是一个比较重要的概念,继承描述的是事物之间的所属关系,是从已有的类中构建出新的类,已有的类称为父类,新的类称为子类,子类具有父类的数据属性和方法,并能扩展新的属性和方法(不能继承私有)。

    1、继承的使用

    • 格式:使用 extends 关键字 ==> class 子类 extends 父类 ()
    • 创建 Person 类和 Student 子类:public class Student extends Person {...}

    2、继承的优点

    • 提高了代码的复用性,提高了软件的开发效率
    • 让类与类之间产生了联系,提供了多态的前提

    3、继承的特点

    • 在Java中,只支持单继承,不支持多继承,一个子类只能有一个直接父类;
    • 父类私有成员,子类不能继承,因为根本看不到;
    • 一个父类可以有多个子类;
    • 支持多层继承,一个类的父类可以再去继承另外的父类;
    • 子类和父类是相对的概念,一个类是某个类父类的同时,也可以是另一个类的子类。

    4、继承中成员变量关系

    • 不同变量名子类直接调用;
    • 相同变量名调用时,如果子类有,就不调用父类的变量,如果子类没有,父类有,则调用父类的;
    • 在子类中,要调用父类的成员,使用关键字 super,调用父类方法也是一样,使用super关键字。

    二、代码实例

    先创建Person.java父类

    package myExtends;
    
    public abstract class Person {
        String name;
        int age;
        int i = 1;
    
        public void setName(String name)
        {
            this.name = name;
        }
        public void setAge(int age)
        {
            this.age = age;
        }
        public String getName()
        {
            return name;
        }
        public int getAge()
        {
            return age;
        }
    }

    再创建Studen.java子类

    package myExtends;
    
    /**
     * 使用extends关键字创建子类并新定义了number变量,定义i进行继承中成员变量的关系进行测试
     */
    public class Student extends Person {
        int i = 2;
        int number;
    
        public void setNumber(int number)
        {
            this.number = number;
        }
        //在子类中能直接使用父类的非私有成员变量
        public void message()
        {
            System.out.println("My name is " + this.name + ",I am " + this.age + " years old," + " my number is " + this.number);
        }
        public void print()
        {
            System.out.println(name);
            System.out.println(super.i);       //在子类中,要调用父类的成员,使用关键字super
        }
    }

    在Main.java中赋值并调用

    package myExtends;
    
    public class Main {
        public static void main(String[] args)
        {
            Student stu = new Student();
            stu.setAge(18);
            stu.setName("java");
            stu.setNumber(32);
            stu.message();
            stu.print();
            System.out.println(stu.i);      //子类有则调用子类的,子类没有则调用父类的
        }
    }

    实例分析:

    • 在父类Person中定义了非私有变量name、age和测试变量i,子类Student中新创建了number变量并在子类中能够使用父类中的变量
    • 在父类和子类中都有 i 变量,调用时,如果子类有,就不调用父类的变量,如果子类没有,父类有,则调用父类的
    • 在子类中,要调用父类的成员,使用关键字 super,调用父类方法也是一样,使用super关键字
    展开全文
  • 继承的注意事项: 1.子类只能继承父类所有非私有的成员(成员方法和成员变量) 其实这也体现了继承的另一个弊端:打破了封装性 2.子类不能继承父类构造方法但可以通过super关键字去访问父类构造方法。 3.不要...

    继承的注意事项:

                 1.子类只能继承父类所有非私有的成员(成员方法和成员变量)

                                 其实这也体现了继承的另一个弊端:打破了封装性

                 2.子类不能继承父类构造方法但可以通过super关键字去访问父类构造方法。

                 3.不要为了部分功能而去继承。

    注意事项1示例:

    package com.company;
    
    class  Father {
        private int num = 10;
        public int num2=20;
        private void method(){
            System.out.println(num);
            System.out.println(num2);
        }
        public void show(){
            System.out.println(num2);
            System.out.println();
        }
    }
    
    class Son extends Father{}
    
    
    public class jicheng_biduan {
        public static void main(String[] args) {
           Son son = new Son();
           son.method();
            son.show();
        }
    }
    

    报错信息:

    意思为对象son没有method方法,由此可以得出,子类并不能继承父类的私有方法和变量。

    主要事项3示例:不要为了部分功能而继承。

           class  A{

            public void show1();

            public void show2(); 

          }

         class B{

         public void show2(); 

         public void show3();

    }

    此时我们发现,B类出现了和A类一样的方法show2(),此时我们想到运用继承来体现,把B类改为

        class B extends class A{

          public void show3();

    }

    但这样其实并不好,因为B继承A就会把A类里面的public方法全部继承,但此时我们可能并不想用show1();方法,但因为继承的特点,我们把A类里面的方法全部继承过来。

     

    什么时候用继承?

       采用假设法!

       其实继承体现的是"is a"的关系,举个例子,

       person 

             teacher

             student

             father

                 即 teacher is a person ,student is a person , father is a person .

    现有A类和B类,如果A类是B类的一种,或者B类是A类的一种,这是我们就可以考虑运用继承。

     

      

    展开全文
  • java集合继承结构图

    2020-09-23 17:39:21
    java集合继承结构图
  • Java继承实例

    千次阅读 2019-05-17 15:08:28
    Java 继承 继承java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。继承可以理解为一个对象从另一个对象获取属性的过程。 如果类A是类B的父类,而类B是类C的父类,我们也称C是A的子类,类C是从类A...
  • Java接口继承使用接口

    千次阅读 2019-06-08 17:57:58
    一接口的继承 1点睛 接口支持多继承,一个接口可以有多个父接口,子接口扩展某个父接口,将会获得父接口里定义的所有抽象方法、常量。 一个接口继承多个父接口时,多个父接口排在extends关键字之后。 2代码 ...
  • java继承课件

    2018-05-25 20:04:00
    java继承课件,主要用于初学者自学java继承课件,主要用于初学者自学java继承课件,主要用于初学者自学java继承课件,主要用于初学者自学java继承课件,主要用于初学者自学
  • JAVA 使用反射获得继承

    千次阅读 2017-11-20 16:00:33
    JAVA 使用反射获得继承类一代码完成 首先创建两个类,Parent.class与Children.class,Children类继承Parent类。 package util;/** * Children类 * Created by OovEver on 2017/11/20. */ public class Children ...
  • java继承和多继承

    千次阅读 2019-10-04 19:55:27
    java继承关键字extend和implement,Java所有子类都继承自 java.lang.Object,即java.lang.Object是Java的祖先类,当一个类内没有继承关键字的时候,默认继承自Object(这个类在 java.lang 包中,所以不需要 import)...
  • Java继承好处和坏处

    千次阅读 2019-03-08 21:12:09
    好处:1、子类能自动继承父类的对象 2、创建子类的对象时,无须创建父类的对象 坏处:1、破坏封装,子类与父类之间紧密耦合,子类依赖于父类的实现,子类缺乏独立性。 2、支持扩展,但是往往以增强系统结构的复杂度...
  • 09-JAVA-继承

    2020-06-05 10:54:50
    JAVA继承思维导图,便捷整理思路,继承的好处、编写继承代码、继承中的注意事项、this与super关键字访问实例变量区别
  • Java继承习题

    2019-04-29 15:12:39
    java继承习题精选 包含可很多习题 同时也副有正确答案
  • Java继承是面向对象的最显著的一个特征,然而下面这篇文章主要给大家介绍了关于为何说JAVA中要慎重使用继承的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
  • Java继承

    千次阅读 2019-04-24 14:11:07
    Java中,所有的继承都是公有继承,没有C++中的私有继承和保护继承。 覆盖方法 直接使用同名方法来覆盖父类的方法。 使用super.可以指定调用父类的方法,相当于C++中使用 父类名::。 //java public doubl...
  • 《Thinking in java》一书里面提到了java单根类继承的几大好处,不过只是提了下,并没深入解析好处怎么来的。网上也很多只是浅谈或者干脆照搬书上的原话。想请教下有经验的人的切身体会,java单根继承好处是怎样的...
  • 主要为大家详细介绍了java集合继承关系图,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 新手小白学JAVA 继承 super

    万次阅读 多人点赞 2021-05-10 08:49:27
    Java继承是会用已存在的类的定义作为基础建立新类的技术 新类的定义可以增加新的数据或者新的功能,也可以使用父类的功能,但不能选择性的继承父类(超类/基类) 这种继承使得复用以前的代码非常容易,能够大大的缩短开发...
  • java继承

    万次阅读 2017-12-11 16:56:35
    java语言中,类可以从其他类继承而来,并继承父类的成员和方法。 继承是简单但是非常强大:当你需要创建一个新类,但是已经有其他类,它已经包含了一些你需要的代码,那么你可以从已有的这个类,继承新的类。...
  • Java继承的概念及使用

    千次阅读 2019-03-24 10:50:43
    Java中,继承使用extends关键字来实现,定义的语法如下: class 子类 extends 父类 子类有时也叫派生类,父类有时也叫超类 当发生了类继承关系之后,子类可以直接继承父类的操作,可以实现代码的重用。子类...
  • java中单继承与多继承

    千次阅读 2015-05-06 22:39:23
    C++中支持多继承,但是在java之中不允许一个子类有多个直接父类,java对此进行了改良。
  • 主要介绍了Java继承的实现与继承限制,结合具体实例形式分析了Java继承的定义、实现以及继承的相关限制,需要的朋友可以参考下
  • Java继承的疑惑

    2018-07-16 23:14:07
    Java继承是单继承,而且所有的类都继承了Object类,那么为何创建一个类的时候还可以extend其他的类? 一查原来所谓的所有的类都继承于Object类,说的是直接继承和间接继承。 直接继承:创建一个类没有使用extend...
  • Java继承的特点

    千次阅读 2019-04-16 21:18:14
    Java继承的特点 继承的特点:Java语言只支持单一继承,只能继承一个父类(一个儿子只能有一个亲爹) Java语言支持多层继承(一个儿子可以有一个亲爹,还可以有一个亲爷爷) ①继承中成员变量的特点: 子类...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,217,118
精华内容 486,847
关键字:

java使用继承的好处

java 订阅