8.16晨写

8.16晨写

1.关于默认修饰符,私有修饰符private,protected,public的范围

同一个包下的情况
    		  同一个包下的同一个类中 同一个包下的子类中/同一个包下无关类
私有修饰符 private    可以访问                    不能访问
默认修饰符            可以访问                    可以访问
受保护的protected     可以访问                    可以访问
公开的public          可以访问                    可以访问
  
不同包下的情况
                在不同包下的子类中         在不同包下的无关类中
私有修饰符 private     不能访问                   不能访问
默认修饰符             不能访问                   不能访问
受保护的protected      可以访问                   不能访问
公开的public           可以访问                   可以访问
        
private范围最小:仅仅在当前类中
默认修饰符:同一个包下都能访问 大于private
protected:同一个包下或者不同包的子类 大于默认修饰符
public:访问权限最大

2.方法的形式参数如果是抽象类,调用方法实际参数应该传递什么?

方法的形式参数如果是抽象类,调用方法实际参数需要抽象类的子类对象
abstract class Person{
    public abstract void work();
}
class PersonDemo{
    public void method(Person p){ //需要的是抽象类的子类对象
        p.work() ;
    }
}
//需要提供子类
class Worker extends Person{
    public void work(){
        System.out.println("工人都需要工作...") ;
    }
}
    //测试类中:调用PersonDemo类中的method方法
//创建PersonDemo对象
    PersonDemo pd = new PersonDemo() ;
    //抽象类多态:
    Person p = new Worker();
pd.method(p) ;

3.方法的形式参数如果是接口,调用方法实际参数应该传递什么?

方法形式参数如果是接口,调用方法,实际参数需要传递该接口的子实现类对象
interface Mary{
    void mary() ;
}
class MaryDemo{
    public void show(Mary mary){//需要接口的子实现类对象
        mary.mary() ;
    }
}
//提供接口的实现类--具体类
class MaryImpl implements Mary{
    public void mary() {
        System.out.println("结婚了...") ;
    }
}
    //测试类中测试:调用MaryDemo类中show方法
    MaryDemo md = new MaryDemo() ;
    //接口多态
    Mary mary = new MaryImpl();
md.show(mary );

4,方法的返回值如果是接口,该方法结束需要返回什么?(具体代码实现)

方法的返回值如果是接口类型,该方法结束需要返回该接口的子实现类对象
interface Mary{
    void mary() ;
}
class MaryDemo{
    public Mary function(){
// 返回的Mary的子实现类对象
        Mary mary = new MaryImpl() ;
        return mary ;
    }
}
//提供接口的实现类--具体类
class MaryImpl implements Mary{
    public void mary() {
        System.out.println("结婚了...") ;
    }
}

4,方法的返回值如果是具体类,该方法结束需要返回什么?

方法的返回值是具体类,需要返回的是该具体类的对象
class Student{
    public void playGame(){
        System.out.println("玩游戏...");
    }
}
class StudentDemo{
    public Student method(){
//需要Student类的对象
        Student s = new Student () ;
        return s ;
    }
}
    //测试类
//调用StudentDemo类中的method方法
    StudentDemo sd = new StudentDemo() ;
    Student student = sd.method() ;//本质就是创建了学生对象
student.playGame() ;
//(sd.method()).playGame() ; 这样可以的,不建议这样写

5,方法的返回值如果是抽象类,该方法结束需要返回什么?(具体代码实现)

方法的返回值如果是抽象类类型,该方法结束需要返回该抽象类的具体子类对象
abstract class Mary{
    public abstract void mary() ;
}
class MaryDemo{
    public Mary function(){
// 返回的Mary的子类对象
        Mary mary = new MaryTest() ;
        return mary ;
    }
}
//提供抽象类的子类--具体类
class MaryTest extends Mary{
    public void mary() {
        System.out.println("结婚了...") ;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值