8.15晨写

8.15晨写

1.接口和抽象类的区别

1)成员的区别
	成员变量:
		接口:只能是常量,存在默认修饰符 public static final ,可以省略不写
		抽象类:可以是变量,也可以自定义常量
	成员方法:
		接口:只能是抽象方法, 默认修饰符:public abstract ,可以省略不写
		抽象类:既可以存在抽象方法,也可以存在非抽象方法, 如果是抽象方法,abstract不能省略;
	构造方法:
		接口:没有构造方法, 通过接口多态实例化,通过具体的子实现类对象的创建
		抽象类:无参/有参构造方法, (抽象类不能实例化,需要靠具体的子类实例化)分层初始化,先父类初始化,然后在子类				 初始化
2)关系区别
	类与类: (类:包含具体类或者抽象类), 继承关系 extends, 可以单继承,不能多继承,可以多层继承;
	类与接口:实现关系 implements,一个类继承另一个类的同时,可以实现多个接口
	接口与接口:继承关系:extends,可以支持单继承,也可以多继承以及多层继承
3)设计理念的区别
	接口:体现出的这个事物本身不具备的功能,一种额外功能;是一种"like a"的关系
	抽象类: 由于不能实例化,需要具体的子类实例化,体现的是一种"isa"的关系
A类是B类的一种,或者是B是A的一种

2.多态的成员访问特点

Fu f = new Zi(); 向上转型 :父类引用指向子类对象
成员变量:编译看左,运行看左
成员方法:编译看左,运行看右,因为存在方法重写
构造方法:如果Fu是抽象类,分层初始化
	先父类,然后子类分别初始化; ---->抽象类多态
如果Fu是接口,借助于子实现类,但是如果子实现类也是抽象类,这个抽象类一定也有具体子类,还是分层初始化; 
---->接口多态

3.final关键字的特点

final关键字:
	可以修饰成员变量,此时变量是一个"常量";
	可以修饰的成员方法,该方法不能被重写
	可以修饰类,该类不能继承 ; 引用类型 String字符串类 被final修饰

4.方法的形式参数是引用类型,具体类的情况,参数如何传递?

  方法的形式参数如果是引用类型, 具体类
class Teacher{
    public void xxx(){
...
    }
}
class Demo{
    public void show(Teacher t){ //实际参数需要传递的是
        Teacher类对象
        t.xxx() ;
    }
}
测试类去测试
        Demo d = new Demo();
        Teacher t = new Teacher() ; //创建类对象
        d.show(t) ;

5.接口与接口的关系,类与接口的关系

类与接口:实现关系 implements,一个类继承另一个类的同时,可以实现多个接口
接口与接口:继承关系:extends,可以支持单继承,也可以多继承以及多层继承
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值