• Java_继承


    可以将父类的功能延续下去

    为什么需要有继承:解决多个类有重复代码的问题

    class 子类 extends 父类 { }

      子类:也叫派生类

      父类:本质上是java中成为超类

    范例:继承的基本使用

    class person{
    
      private String name;
    
      private int age;
    
      public void setName(String name){
    
        this.name = name;
      }
    
      public void setAge(int age){
    
        this.age = age;
      }
    
      public String getName(){
    
        return this.name;
      }
    
      public int getAge(){
    
        return this.age;
      }
    
    }
    
    class student extends Person{  //student 是子类
    
      //不定义任何属性
    
    }
    
    public class TestDemo{
    
      public static void main(String args[]){
        Student stu = new Student(); 
        stu.setName("张三");
        stu.setAge(20);
        System.out.println("姓名" + stu.getName() + "年龄" + stu.getAge());
      }
    
    }

    继承的使用限制:

    一:Java不允许多重继承:一个子类只能继承一个父类。(C++允许)

    但是允许多层继承。

    class A{}

    class B extends A{}

    class C extends B{}   // C继承了A和B,但是开发中不要超过三层

    二:子类继承父类后会将父类中全部结构继承下来,但是私有操作属于隐式继承,而所有的非私有操作属于显式继承。

    class A{

      private String Name;

      public void setName(String name){

        this.name = name;

      }

      public String getName(){

        return this.name;

      }

    }

    class B extends A {

      public class TestJava{

        public static void main(String args[]){

          B b = new B();

          b.setName(“张三”);

          System.out.println(b.getName());

        }

      }

    }

    现在对于子类B是由name属性的,但是不能直接访问:

    class B extends A{

      public void print(){

        System.out.println(name);  //此时name属于隐式继承,所有的setter属于显式继承,此句无法操作

      }

    }

    三:在实例化对象时会默认调用子类的无参构造方法,但在执行子类构造前回会先自动实例化父类构造,为父类的对象实例化,也就是说父类对象永远早于子类对象的实例化

    如果非要为子类加上一个调用父类构造的标记,可以使用:super()

    class A{

      public A(){

        System.out.println("111111111111");

      }

    }

    class B{

      public B(){

        super();  //表示由子类构造调用父类构造 加与不加都一样。调用无参父类构造没有意义,一般是父类没有提供无参构造是使用

        System.out.println("222222");

      }

    }

  • 相关阅读:
    obj2opengl:转换OBJ 3D模型到iPhone OpenGL ES兼容的数组中
    [iTyran原创]iPhone中OpenGL ES显示3DS MAX模型之二:lib3ds加载模型
    [iTyran原创]iPhone中OpenGL ES显示3DS MAX模型之一:OBJ格式分析
    Excel双击“单元格”后,自动跳转到相关“工作表
    如何设置UITextField的焦点?
    IOS 数据储存
    解决Use 'LimitInternalRecursion' to increase the limit if necessary的问题 CodeIgniter .htaccess
    iOS 9界面适配利器:详解Xcode 7的新特性UIStackView
    iOS警告收集
    iOS划虚线
  • 原文地址:https://www.cnblogs.com/lonske/p/8698285.html
Copyright © 2020-2023  润新知