JavaSE基础学习笔记-接口和多态

接口:用interface关键字定义

接口中成员的特点:1.接口中可以定义常量和抽象方法,接口中的成员都有固定的修饰符,

                                  常量:public static final

                                  方法:public abstract 

                                  这些修饰符是默认添加的,不写也是可以的。

接口子类的特点:接口是不能创建对象的,因为接口当中有抽象方法,这些方法需要被子类全部重写,子类才可以创建对象,如果子类只重写了接口中的

                            一部分方法或没有重写,那么子类就是一个抽象类。


Java不支持多重继承的原因:因为父类中可能存在同名方法,而这些方法可能都有方法体,这样当子类调用父类方法时就会出现胡乱,而实现多个接口是                                              可以的,因为接口中的方法都没有方法体,需要子类去重新这些方法,如果出现重名现在那么子类只需要重写一次就可以了                                             ,而当中的内容只有一份,不会出现混淆。


接口和继承类的应用原则:应用某个体系中的功能时用继承,对某个类进行功能扩展时用接口。


多态是Java的又一大特性,多态思想让java编程非常有趣。

多态的体现形式:父类引用指向子类对象

多态的好处:大大提高了程序的扩展性

实现多态的前提:类与类之间要存在关系,或者是继承或者是实现接口

interface A{
	
}
class B{
	
}
class C implements A{
	
}
class D extends B{
	
}
public class HelloWorld {
	public static void main(String []args){
		A a = new C();
		B b = new D();
	}
}


多态的弊端:只能用父类引用访问父类成员,如果子类中增加了一些成员时,用多态的访问不到的。

interface A{
	void method1();
}
class B{
	
}
class C implements A{
	public void method1(){
		System.out.println("C method1");
	}
	public void method2(){  //子类特有的方法
		System.out.println("C method2");
	}
}
class D extends B{
	
}
public class HelloWorld {
	public static void main(String []args){
		A a = new C();
		B b = new D();
		a.method2();  //编译错误
	}
}


多态中成员函数的特点:在编译期间参考父类引用,而在运行期间参考子类对象。

多态中成员变量的特点:不论是静态还是非静态的成员变量,都参考父类的引用

interface A{
	int x = 9;
	void method1();
}
class B{
	static int y = 8;
	
}
class C implements A{
	int x = 4;
	public void method1(){
		System.out.println("C method1");
	}
	public void method2(){
		System.out.println("C method2");
	}
}
class D extends B{
   static	int y = 2;
}
public class HelloWorld {
	public static void main(String []args){
		A a = new C();
		B b = new D();
		System.out.println("a.x = " + a.x + ", b.y = " + b.y);
	}
}
输出结果:a.x = 9, b.y = 8

<---------------------------------新手学习,有错误请大家指出--------------------------------->

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值