java中abstract,public,protected,private以及不写作用域的时候在继承关系中的调用

1、父类是用abstract修饰的抽象类

一、用abstract修饰的类叫做抽象类,用abstract修饰的方法叫做抽象方法,如果一个类中有抽象方法,那么这个类必须定义为抽象类,抽象类不能被实例化,只能用来被继承

二、抽象方法没有方法体,如果一个类继承了抽象类,那么必须重写抽象方法。抽象类中可以有抽象方法,也可以有非抽象。子类可以不加引用的方式直接调用父类的public、protected,以及不写作用域的方法。

animal.java

public abstract class Animal {
public abstract void shout();
public void getServletRequest()
    {
    };
    protected void getServletRequest1()
    {
    };
    private void getServletRequest2()
    {
    };
    void getServletRequest3()
    {
    };
}

cat.java

public class Cat extends Animal {


@Override
public void shout() {
getServletRequest();
getServletRequest1();
//getServletRequest2();
getServletRequest3();
System.out.println("猫在叫。。。。");
}

}

2、父类是用public修饰的

一、父类中不能出现抽象方法,子类可以不加引用的方式直接调用父类的public、protected,以及不写作用域的方法。
animal.java
public  class Animal {
//public abstract void shout();
public void getServletRequest()
    {
    };
    protected void getServletRequest1()
    {
    };
    private void getServletRequest2()
    {
    };
    void getServletRequest3()
    {
    };
}
cat.java

public class Cat extends Animal {


//@Override
public void shout() {
getServletRequest();
getServletRequest1();
//getServletRequest2();
getServletRequest3();
System.out.println("猫在叫。。。。");
}

}

3.父类不能用protected,privavte修饰

一、如果类可以使用private来修饰,表示该包下的这个类不能被其它类访问,那么该类也失去了存在的意义,所以不能使用private来修饰类。
二、如果类可以使用protected来修饰,表示该类所在的包的其它类可以访问该类;该类所在的包的子包的类可以访问该类,但是包没有继承的概念,所以后一句是不对。所以用protected来修饰类也是没有意义的

4.不写作用域的父类

一、父类中不能出现抽象方法,子类可以不加引用的方式直接调用父类的public、protected,以及不写作用域的方法。

animal.java

class Animal {
//public abstract void shout();
public void getServletRequest()
    {
    };
    protected void getServletRequest1()
    {
    };
    private void getServletRequest2()
    {
    };
    void getServletRequest3()
    {
    };
}

cat.java

public class Cat extends Animal {


//@Override
public void shout() {
getServletRequest();
getServletRequest1();
//getServletRequest2();
getServletRequest3();
System.out.println("猫在叫。。。。");
}

}

5.final修饰的类不能被继承

6.接口只能有public&friendly&abstract修饰
7.接口只能extends接口,不能继承类,或implements接口

猜你喜欢

转载自blog.csdn.net/wanghengwhwh/article/details/53838760