精华内容
下载资源
问答
  • Java 子类继承父类方法

    千次阅读 2019-05-22 09:13:32
    类 A 称为基类(父类),类 B 称为派生类(子类) 类继承关系语法形式 Class 派生类名:基本名表 { 数据成员函数声明 } 基本名表 构成 访问控制 基类名1, 访问控制 基本名2,……..,问控制 基本名...

    继承理解:在已有类的基础上创建新类型过程;

    例如 一个 B 类继承 A 类,或称从类A派生类 B

    类 A 称为基类(父类),类 B 称为派生类(子类)

     

    类继承关系语法形式

     

    Class 派生类名:基本名表

    {

        数据成员函数声明

    }

     

    基本名表 构成

     

    访问控制 基类名1, 访问控制  基本名2,……..,问控制    基本名N

     

    继承类型注意的是 Java 不支持多继承,但支持多重继承。

    代码:

     

    继承了 Bird中的fly和eatting方法和weight成员变量。代码:

    展开全文
  • 1、子类重写父类方法的方法名、参数类型必须与父类被重写(被覆盖)的方法相同; 2、子类方法的返回值类型必须小于等于父类被重写的方法的返回值类型; 3、子类抛出的异常小于等于父类方法抛出的异常; 4、子类的...

    1、子类重写父类方法的方法名、参数类型必须与父类被重写(被覆盖)的方法相同;
    2、子类方法的返回值类型必须小于等于父类被重写的方法的返回值类型;
    3、子类抛出的异常小于等于父类方法抛出的异常;
    4、子类的访问权限大于等于父类的访问权限;(子类重写了父类的方法,子类的方法的权限修饰符不能比父类低,最好与父类一致。(public > 默认修饰符>protected>private) 父类是public的,那么子类只能是public的)

    展开全文
  • JAVA为什么子类继承父类方法之后,不能抛出比父类更多的异常?  今天看视频的时候,方立勋老师说到这个问题,他举出一个例子,说父亲有一个错误的方法,导致自己可能犯错,可能杀人放火。儿子继承了父亲这个...

    JAVA为什么子类继承父类方法之后,不能抛出比父类更多的异常?

            今天看视频的时候,方立勋老师说到这个问题,他举出一个例子,说父亲有一个错误的方法,导致自己可能犯错,可能杀人放火。儿子继承了父亲这个方法,那么儿子肯定不能比父亲更坏,不能够在杀人放火的基础上还调戏妇女。

           

             听到这个问题之后,我就觉得不对劲。即便是模拟现实,儿子不能比父亲更加差劲这种东西也太违背自然规律了,因为社会上存在着很多比父亲差劲的儿子。而且并不是每一个抢劫犯都是抢劫犯的儿子。也并不是每一个不抢劫的人,生不出抢劫犯儿子。

          

            后来自己就这个问题思考了下。

             得出以下的结论,当然,该结论虽然让我觉得比较正确,也不能确定其真伪。

        

             子类在覆盖父类方法的时候,父类的引用是可以调用该方法的,如果父类的引用调用子类的方法,那么这个多抛出来的异常,就可能处于一种无法被处理的状态。下面,我就通过代码进行一下演示:


           我们先定义一个Animal类:

        

    class Animal
    {
    	public void eat()throws IOException,FileNotFoundException
    	{
    		System.out.println("eat");
    	}
    }

      接着,我们再定义一个Tiger类继承该Animal类


    class Tiger extends Animal
    {
    	public void eat()throws IOException ,Exception
    	{
    		System.out.println("Tiger eat animal");
    	}
    }

    这样,tiger的eat方法里,就有一个Exception 异常,这个异常的级别高于IO。也就是说对IO异常的处理,无法处理Exception 异常。

    这个时候,如果我们定义一个测试方法,测试动物吃东西这个方法。

    如下:

    class Test
    {
        public void TestAnimalEat(Animal a) 
        {
            try
            {
                a.eat();
            }
            catch(FileNotFoundException e1)
            {
                e1.printStackTrace();
            }
            catch(IOException e2)
            {
                e2.printStackTrace();
            }
            
        }
    }

    那么,这个方法是完全正确的,因为他处理了eat方法的两个异常。一个抛出,一个捕获。

    这个时候,如果我们再进行如下的操作:

    class TestDemo
    {
    	public static void main(String[] args) 
    	{
    		Test t = new Test();
    		Tiger tiger = new Tiger();
    		t.TestAnimalEat(tiger);
    	}
    }

    则在调用tiger对象的时候,Test中的TestAnimalEat()方法只处理Animal类的eat()方法的两个异常,而这个Tiger类中的eat()方法多出来的Exception,就无法进行处理。所以,JAVA就不允许做这种子类抛出比父类更多的异常。


    当然,这里说更多是不合适的,子类不能抛出父类异常本身和其子异常以外的其他异常。比如,如果父类抛出一个Exception 异常,那么子类就可以随心所欲的抛出很多的异常了。因为这些异常都是父类异常的子异常。

             

     

    那么如果要联系现实,应该如何说呢。

            一个修理家电的人,他能够修理冰箱,电脑,洗衣机,电视机。 一个年轻人从他这里学的技术,就只能修理这些家电,或者更少。你不能要求他教出来的徒弟用从他这里学的技术去修理直升飞机。


          这个说法和老师说法其实也比较一致,但是徒弟这个说法可能比儿子这个说法,更加容易理解吧。

    展开全文
  • 继承father类的show方法时本该显示c的number属性的地方显示了father类属性的初始值。 但若直接重写方法,C的number无异常。 想请教这个代码中的super.show()是否是我用错了 以下为主代码 ``` import java...
  • 子类继承父类,并重写父类方法

    千次阅读 2019-04-29 16:59:54
    子类继承父类,并重写父类方法 2016年08月04日 00:04:07jinxueH专栏阅读数:17172 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/euxnijuoh/article/details/52108863 例子...

    子类继承父类,并重写父类方法

    2016年08月04日 00:04:07 jinxueH专栏 阅读数:17172

     版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/euxnijuoh/article/details/52108863

    
     
    1. 例子1:

    2. 父类:

    3. public class Person {

    4.  
    5.  
    6. public String name;

    7. public int age;

    8.  
    9. public Person(String name,int age){

    10. this.name=name;

    11. this.age=age;

    12. }

    13.  
    14. public Person() /*如果不写这个构造函数,看看对类Student有什么影响。*/{

    15.  
    16. }

    17.  
    18. public void getInfo(){

    19. System.out.println(name);

    20. System.out.println(age);

    21. }

    22. }

    23.  
    24. 子类:

    25. public class Student extends Person{

    26. String school;

    27. public Student(String name,int age,String school){

    28. super(name,age);

    29. this.school=school;

    30. }

    31.  
    32. public Student(){

    33.  
    34. }

    35.  
    36. public void study() {

    37. System.out.println("学习非常棒!");

    38. }

    39.  
    40. public static void main(String[] args)

    41. {

    42. Person p=new Person();

    43. p.name="person";

    44. p.age=45;

    45. p.getInfo();

    46.  
    47. Student s=new Student();

    48. s.name="student";

    49. s.age=26;

    50. s.getInfo();

    51. s.study();

    52. }

    53. }

    54.  
    55. 例子2:

    56. 在子类中可以根据需要对从父类中继承来的方法进行改造----方法的覆盖 ( 也叫重写)。

    57. 覆盖方法必须和被覆盖方法具有相同的方法名称、参数列表和返回值类型。

    58. 例如例子1那个Student程序,它继承了Person类的getInfo方法,这个继承到的方法

    59. 只能打印出学生的name和age,不能打印出学生专有的信息,比如学校的名称等,这时我

    60. 们就应该在类Student中重新编写一个getInfo方法,这就是方法的覆盖。

    61.  
    62. 父类:

    63. package javatest;

    64.  
    65. public class Person {

    66. public String name;

    67. public int age;

    68.  
    69. public Person(String name,int age){

    70. this.name=name;

    71. this.age=age;

    72. }

    73. //如果不写这个构造函数,看看对类Student有什么影响。

    74. public Person(){

    75.  
    76. }

    77.  
    78. public void getInfo(){

    79. System.out.println(name);

    80. System.out.println(age);

    81. }

    82. }

    83.  
    84. 子类继承父类:

    85. public class Student extends Person{

    86. String school; //父类是没有的,子类特有的

    87. public Student(String name,int age,String school){

    88. super(name,age);

    89. this.school=school;

    90. }

    91.  
    92. public Student(){

    93.  
    94. }

    95.  
    96. public void study() {

    97. System.out.println("学习非常棒!");

    98. }

    99.  
    100. public void getInfo()

    101. {

    102. super.getInfo();

    103. System.out.println(school);

    104. }

    105.  
    106.  
    107. public static void main(String[] args)

    108. {

    109. Person p=new Person();

    110. p.name="person";

    111. p.age=45;

    112. p.getInfo();

    113.  
    114. Student s=new Student();

    115. s.name="student";

    116. s.age=26;

    117. s.school="清华大学";

    118. s.getInfo();

    119. s.study();

    120. }

    121. }

    展开全文
  • java子类继承父类方法的重写(覆盖)   在程序中,如果想声明一个类继承另一个类,需要使用extends关键字。 格式: class 子类 extends 父类 {} public class Text { public static void main (String[]...
  • !... 我现在有这几个类,A B1 B2是接口,A是B1 B2的父类,B1 B2是C1 C2父类, 现在我用A a = new C1(); (a as C1).方法1(); 可以调用子类方法。如果父类不转为子类,还有什么方法父类可以访问到子类方法
  • 1.首先,我们都知道子类继承父类会继承父类的非private属性和方法。 2.接下来我有个疑问,父类继承了一个祖父类,子类再继承父类,子类继承祖父类吗? 先说答案,是的,子类也会继承祖父类 //祖父类 public class ...
  • String a = "父类"; protected void Method(){ System.out.println(a); } } class B extends A{ String a = "子类"; } public class Test{ public static void main(String[] args) { B b = new B(); b.
  • 子类继承父类:可以继承父类的私有属性和方法,但是不能使用父类的私有属性和方法。解释:书本中是子类继承父类,子类拥有父类的所有属性和方法, 通过程序验证发现父类的私有属性和私有方法子类不能访问。 于是你...
  • 简单说,如果子类继承父类自己写构造方法中没有显示调用父类有参构造方法,则会先隐式调用父类无参构造方法,若是先显示(super(300))调用了父类有参构造方法,则父类的无参构造方法就不会再被调用。 ...
  • python 子类继承父类,父类的父类

    千次阅读 2019-07-16 12:49:41
    python 子类继承父类,父类的父类 #定义一个动物的类 class Animal: def eat(self): print('------吃------') def drink(self): print('------喝------') def sleep(self): print('------睡觉-...
  • 子类继承父类,父类中的构造器

    千次阅读 2016-11-03 12:06:58
    子类继承父类时,父类中必需有无参构造器,子类才可以继承父类? 可是父类中只有有参构造器时,就不能实现子类继承父类了吗?
  • Java 子类 继承 父类 所有属性、方法

    千次阅读 2018-07-03 12:23:18
    最近学习继承,从书中看到子类继承父类,子类拥有父类所有的属性和方法,于是使 用程序去验证,发现父类的私有属性和私有方法,子类是不能访问的,当然一些父类 的私有属性可能可以通过相应的方法访问到,但是私有的...
  • js中的子类继承父类方法和属性

    千次阅读 2014-08-15 13:59:24
    上次讲了个简单的继承,这次 咱们讲个稍微复杂点的,那就是让子类继承父类的属性和方法,假设人 (Person)是父类,工人(Worker)是子类,让worker继承person的属性和方法: 父类: function Person(name,age) {  ...
  • java 子类继承父类方法的执行顺序

    千次阅读 2018-05-01 18:24:03
    结论: java中子类继承父类方法的执行顺序:(这里只写jvm自动调用的方法的顺序,包括静态代码块、代码块、构造方法) 1、第一次创建子类对象 父类静态代码块 子类静态代码块 父类代码块 父类构造方法 子类...
  • 父类是泛型类之子类继承父类

    千次阅读 2018-03-07 21:00:15
    实现:父类是泛型类,子类继承父类, 这样在父类中就能得到泛型的对象了。是子类继承父类的时候,设置的泛型。 如果例如都在com包下 父类是:public class Person 子类是:public class Student extends...
  • 使用Lombok子类继承父类,父类属性不生效 子类增加: @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) @Data @Entity @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) ...
  • 子类继承父类的加载顺序详解

    千次阅读 2019-01-09 21:34:35
    二:子类继承父类的加载顺序 一:单独类的加载顺序 静态变量、静态代码块(从上到下的顺序加载) 类的非静态变量,非静态块(从上到下的顺序加载) 构造函数 二:子类继承父类的加载顺序 父类静态变量、父类...
  • 子类继承父类的哪些成员

    千次阅读 2019-02-28 22:01:55
    子类继承自父类后,子类可以拥有父类的某一些状态和行为,即子类复用了父类的某些功能和状态。可以通过访问修饰符判断子类继承了父类的...3、若父类和子类在同一个包中,此时子类可以继承父类中缺省修饰的成员。 ...
  • java 子类继承父类运行顺序

    千次阅读 2016-08-24 17:29:10
    java 子类继承父类运行顺序
  • (易混点)java中,关于子类继承父类的private方法与final方法 对于子类继承父类方法,相信很多人都已经掌握得非常熟悉了,今天由于在做牛客网的一道关于这个知识点的面试题,忽略了一个非常重要的细节,导致入坑...
  • public class Test4 { 2 ... 所以,当使用子类对象调用方法使用同名变量,是按照方法来判断使用哪一个变量,调用父类方法,使用的是父类中的变量,调用子类方法,使用的是子类中的变量
  • 用学生的输出为例子,子类继承父类,然后在子类中新定义一个属性并可以给父类属性赋值,以及重写tostring和重写equals方法。 demo测试 package Student; public class demo { public static void main(String[] ...
  • Java子类继承父类构造器

    千次阅读 2018-05-04 11:16:26
    子类如何继承父类的构造器?2.子类与父类构造器执行顺序?二、创建父类创建父类Animal,有两个构造器class Animal{ private Integer high; public Animal() { System.out.println("Animal()"); } ...
  • 如果子类是一个抽象类,并不要求重写父类中的方法 如果不是一个抽象类,则重写父类中的抽象方法 3:接口类继承: 如果是一个子接口,则可以扩展父接口的方法 如果是一个子抽象类,可以部分或全部重写负接口的方法 如果子类...
  • 原文地址: 子类继承父类的变量和父类原有变量的关系http://blog.csdn.net/victory08/article/details/47625113子类继承父类的成员变量是同一个变量吗? https://bbs.csdn.net/topics/190043856博客一:做项目的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 426,375
精华内容 170,550
关键字:

子类继承父类的方法