您当前的位置: 首页 >  Java

ZhangJiQun&MXP

暂无认证

  • 0浏览

    0关注

    1187博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Java多态总结,3大特征封装,继承,多态,继承属性 Java中private、protected、public和default的区别 android studio 单元测试: 单元测试 set

ZhangJiQun&MXP 发布时间:2018-07-31 16:20:10 ,浏览量:0

目录

 

继承属性

Java中private、protected、public和default的区别

android studio 单元测试:

单元测试 setup,tearDown

 

继承属性
  • 子类拥有父类非 private 的属性、方法。

  • 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。

  • 子类可以用自己的方式实现父类的方法。

  • Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如 A 类继承 B 类,B 类继承 C 类,所以按照关系就是 C 类是 B 类的父类,B 类是 A 类的父类,这是 Java 继承区别于 C++ 继承的一个特性。

  • 提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)。

对于继承,子类会默认调用父类的构造器,但是如果没有默认的父类构造器,子类必须要显示的指定父类的构造器,而且必须是在子类构造器中做的第一件事。

仍然允许子类的成员来访问它们。这个时候就需要使用到protected。

对于protected而言,它指明就类用户而言,他是private,但是对于任何继承与此类的子类而言或者其他任何位于同一个包的类而言,他却是可以访问的。

 

看下代码demo:

 

class A {
    public String show(D obj) {
        return ("A and D");
    }

    public String show(A obj) {
        return ("A and A");
    }
}

class B extends A {
    public String show(B obj) {
        return ("B and B");
    }

    public String show(A obj) {
        return ("B and A");
    }
}

class C extends B {
}

class D extends B {
}

class E {
    public static void main(String[] args) {
        A a1 = new A();
        A a2 = new B();//这样只保留A中的show(D)和B中的show(A);a2只保留了与父类A同名的属性和方法。
        B b = new B();
        C c = new C();
        D d = new D();
        System.out.println(a1.show(b));   //①AA
        System.out.println(a1.show(c));   //②aa
        System.out.println(a1.show(d));   //③ad
        System.out.println(a2.show(b));   //④ba
        System.out.println(a2.show(c));   //⑤ba
        System.out.println(a2.show(d));  // ⑥ad
        System.out.println(b.show(b));    //⑦bb
        System.out.println(b.show(c));    //⑧bb
        System.out.println(b.show(d));    //⑨ad
    }
}

其实主要就是在这里:

1. A a1 = new A();

2. A a2 = new B();//这样只保留A中的show(D)和B中的show(A);a2只保留了与父类A同名的属性和方法。

3. B b = new B();

上面这三种形式其中主要就是2这种形式,a2只保留了与父类A同名的属性和方法。相当于把儿子的功能给父亲,这时候父亲只能接受儿子重写父亲的方法,也就是public String show(A obj)覆盖掉父亲的同名方法,儿子原来的public String show(B obj),由于父亲 没有,只能废掉。其他就是正常的的了。

 

Java中private、protected、public和default的区别

 

public:可以被所有其他类所访问

private:只能被自己访问和修改

protected:自身、子类及同一个包中类可以访问

default:同一包中的类可以访问,声明时没有加修饰符,认为是friendly。

 

protected举例:

public class A {
    protected int a = 0;
    private int ceshia() {
        a++;
        return a;
    }
}

 

public class B extends A {
    public int ceshia(){
        a++;
        return a;
    }

}

解释:B继承A ,B可以使用A中a变量;

 

android studio 单元测试:

java:

还是上面的AB,右键goto,创建一个Test:

public class BTest {

    @Test
    public void ceshia() {
        B b=new B();
        int a= b.ceshia();
        System.out.println(a);
    }

}

点击左侧按钮就能运行了;

 

android  测试:

选择android:

 

单元测试 setup,tearDown

 

 

关注
打赏
1665659684
查看更多评论
立即登录/注册

微信扫码登录

0.0423s