zoukankan      html  css  js  c++  java
  • 继承

    1. 子类能够继承到父类的所有成员变量和方法,但不能继承到父类的构造方法(构造方法为对象的初始化工作,构造方法函数拿过了也很麻烦,子类有自己的属性,构造方法还是必要的时候自己写或是默认的+getter setter方法),在子类中可以通过super(参数列表)调用父类的构造方法。

    2. 想要实例化子类,先要实例化父类,必须调用父类的某个构造方法。父类中有有参数的构造方法,子类中必须写一个有参构造方法,参数列表和父类构造方法相同。因为子类继承过来的属性初始化要通过父类的构造方法,因为属性一般都是private的需要通过父类public的构造方法访问。

    3. 如果子类的构造方法中没有显示的调用父类的构造方法,也没有使用this关键字调用重载的其他构造方法,则在产生子类的对象时,系统默认调用父类的无参构造方法。

    4. java中只能单继承。

    5. 多层继承,C继承了B,B继承了A,C间接继承A。

    6. 定义为final的类,不能被继承,final的方法不能被重写,final的属性只能被赋值一次,全局常量 public static final int a = 1;定义时就要赋值

    7. 继承简化了代码的开发。

    package weiguoyuan.chainunicom.cn;
    
    class Person {
        private String name ="jianghongweiSB";
        private int age;
        public void f1(){
            System.out.println(name);
        }
        public Person(String name) {
            this.name = name;        
        }
        public Person(String name,int age) {
            this.name = name;
            this.age = age;
        }
    }
    
    class Student extends Person {
        private String sex;
        public Student(String name) {    
            //this.name = name; 编译时报错,子类中没有该成员
            //super.name = name;编译时报错,name属性在父类中,而且是private的,类外不可访问
            super(name);//父类构造方法不可以继承,但公有的可以访问
            // TODO Auto-generated constructor stub
        }
    }
    
    public class TestExtends {
    
        public static void main(String[] args) {
            Student s = new Student("weiguoyuan");
            s.f1();
        }
    
    }
    package weiguoyuan.chainunicom.cn;
    
    class A {
        private String name = "A";
        public void call(){
            System.out.println(name);
        }
    }
    
    class B extends A {
        private String name = "B";
    }
    
    public class TestExtends1 {
    
        public static void main(String[] args) {
            B b = new B();
            b.call();//call的输出为A
        }
    }

    上面代码输出为A 

     System.out.println(name); 输出为就近原则

    在实例化b的时候先实例化父类A的对象,并将A的对象的地址存在B类对象中,可以通过 super来访问父类对象内容。

  • 相关阅读:
    Develop an Android Application
    有效提高编程技能
    如何提高团队编程水平
    ruby测试框架
    grep:Binary file (standard input) matches
    python datetime相减
    软件开发的“三重门
    Linux高手之路SVN使用笔记
    机器io高原因排查全命令指南
    代码如写作
  • 原文地址:https://www.cnblogs.com/weixiaole/p/4543577.html
Copyright © 2011-2022 走看看