栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java学习——面向对象(中)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java学习——面向对象(中)

1.Java的访问控制修饰符有哪些?各有什么访问权限?

public:公共访问权限

protected:包访问权限、继承访问权限

无修饰符:包访问权限

private:类内部访问权限

类前修饰符public缺省
类属性或成员方法
public所有类包中类
protected包中的类或包中和所有子类包中类
无访问控制符包中类包中类
private本类本类

2.子类对于从父类继承的那些属性与方法是可见的?

在同一包里public和protected和无修饰符的是可见的,private的不可见;

在不同包里public和protected是可见的,无修饰符的和private不可见;

public class demo{
    public demo(){
        System.out.println("构造");
    }
    public void A(){
        System.out.println("public");
    }
    protected void B(){
        System.out.println("protected");
    }
    void C(){
        System.out.println("null");
    }
    private void D(){
        System.out.println("private");
    }
}
public class test2 extends demo {
    public static void main(String[] args) {
        test2 a=new test2();
        a.A();//可见
        a.B();//可见
        a.C();//同包可见,不同包不可见
        a.D();//不可见
    }
}

3.什么是组合?有什么作用?

组合是一个类获得其它类的对象的用法,比如在类A中用类B的对象:

public class A{
    public B b;
}

作用是使A类在不用继承的情况下可以使用B类的属性和方法

4.什么是重载?有什么作用?

重载(overloading)是在一个类里面的名字相同但是参数不同或返回类型不同的方法

每个重载的方法都必须有一个独一无二的参数类型列表,

重载规则:

        被重载的方法必须改变参数列表(参数个数或类型不一样);

        被重载的方法可以改变返回类型;

        被重载的方法可以改变访问修饰符;

        被重载的方法可以声明新的或更广的检查异常;

        方法能够在同一个类中或者在一个子类中被重载;

        无法以返回值类型作为重载函数的区分标准;

public class Test {
    public int test(){
        System.out.println("t1");
        return 1;
    }
    public String test(String a){
        System.out.println(a+"t2");
        return a+"test";
    }
    public int test(int n){
        System.out.println(n+"t3");
        return n+1;
    }

    public static void main(String[] args) {
        Test t=new Test();
        t.test();
        t.test(1);
        t.test("ABC");
    }
}

重载可以使一个语句实现多个功能;

5.什么是覆写?有什么作用?覆写父类方法的条件有哪些?

覆写(Override)也叫重写,是子类的允许访问的方法的实现过程进行重新编写,返回值和形参都不能改变。

重写的好处在于子类可以根据需要定义特定属于自己的方法。

覆写父类方法的条件有:

        参数列表与被重写方法的参数列表必须完全相同。

        返回类型与被重写方法的返回类型可以不相同,但是必须是父类返回值的派生类;

        覆写方法的访问修饰符的级别不能低于父类的方法的;

        final的方法 不可以被覆写;

        static的方法不能覆写;

        子类和父类在同一个包中可以覆写除final与private的方法;

        不在同一个包中只能覆写非final的public和protected方法;

        构造方法无法覆写;

public class father {
    public int test(int n){
        return n+1;
    }
}
class son extends father{
    public int test(int n){
        return n+2;
    }

    public static void main(String[] args) {
        son a=new son();
        int n=a.test(3);
        System.out.println(n);
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/592305.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号