java继承

java继承,第1张

java继承
package com.use.myextends;

import com.use.myextends.exercise.Student;

public class MyExtendes {
    public static void main(String[] args) {
//        Student student = new Student();
//        不同包下的类,默认和protected级别不能直接访问
//        System.out.println(student.name + student.age + student.score);
//        Sub sub = new Sub();
        // 在创建子类对象时 默认会调用父类中的无参构造器
//        sub.subInfo();
        System.out.println("======第2个对象======");
        Sub sub01 = new Sub(1);
        // sub继承父类的父类
        sub01.topbaseFunc();
    }
}

class MyStudent extends Student{
    //不同包下的子类 默认级别不能直接访问 protected可访问
    public void showInfo(){
//        System.out.println(name+age+score);
    }
}

package com.use.myextends;

public class Sub extends base{

    public Sub(int n1){
//        若父类中不存在无参构造器,需要用 super(参数) 来显式调用父类中指定的构造器
        super(n1);
        System.out.println("子类中的Sub(int n1)构造器");
    }
//    public Sub(){
        super();
//          // 创建对象时,会默认使用此函数 调用父类中的无参构造器,此函数无需显式调用,系统编译时默认调用
//        System.out.println("子类中的Sub()构造器");
//    }
    public void subInfo(){
        test100();
        test200();
        test300();
        testPrivate();
//        test400();    // 私有属性/方法不能在子类中直接调用
    }
}

package com.use.myextends;

public class base extends Topbase{

    public int n1=100;
    protected int n2 = 200;
    int n3 = 300;
    private int n4 = 400;

    public base(int n1){  //父类中的无参构造器
        System.out.println("父类中的base(int n1)构造器");
    }

//    public base(){  //父类中的无参构造器
//        System.out.println("父类中的base()构造器");
//    }

    // 父类中的私有属性&方法 需要通过父类提供的方法访问
    public void testPrivate(){
        System.out.println(n4);
        test400();
    }
    public void test100(){
        System.out.println("test100().....");
    }
    protected void test200(){
        System.out.println("test200().....");
    }
    void test300(){
        System.out.println("test300().....");
    }
    private void test400(){
        System.out.println("test400().....");
    }
}

package com.use.myextends;

public class Topbase {

    public void topbaseFunc(){
        System.out.println("topbaseFunc() 被调用");
    }
}

package com.use.myextends;

public class ExtendsExercise {
    public static void main(String[] args) {
        B b = new B();
    }
}

class A{
    A(){System.out.println("a");}
    A(String name){System.out.println("a name");}
}

class B extends A{
    B(){this("abc");System.out.println("b");};
    // this("abc") 会调用下方构造器,构造器中默认有 super() 函数,会调到父类A中的无参构造器
    B(String name){System.out.println("b name");}
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zaji/5719042.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存