包和继承简介

本文详细介绍了Java编程中的包使用,包括如何通过导入避免全限定名,以及不同访问修饰符的权限范围。同时,讨论了final和static关键字的作用,如final用于防止重写和再次赋值,static用于共享成员变量。接着,文章阐述了多态的概念,其在继承和方法重写基础上的表现形式,并分析了多态中成员访问的特点和优势。最后,提到了向上和向下转型及其注意事项,展示了多态在代码扩展性和灵活性方面的价值。
摘要由CSDN通过智能技术生成

包:

在IDEA中,如果在一个包内new一个对象,而这个对象的类在另一个包内,那么创建这个对象时,就必须在类名前加上包的名字,用点隔开

例如:

com.it包下的A类

在com.ti包下new一个A类的对象需要这样操作:

com.it.A s1=new com.it.A();

还有更简便的方法:导包

直接在com.ti下导入:

import com.it.A;

修饰符

public都可以访问,private只能在一个类里访问

protected能在同一个包中访问,也能在不同包的子类访问

默认修饰只能在一个包中访问

final:修饰成员方法,成员变量,类

被final修饰方法不能被重写

被final修饰的成员变量不能被再次赋值

类被final修饰就不能再被继承了

当final修饰引用类型时

final Student s=new Student(); //Student是一个类

s.age=100;age为Student中的成员变量,这里不会报错

因为final修饰的时s,意为s的地址值不能变

若s=new Student();那么会报错,因为重新赋值地址是不被允许的

static:意思为静态,可以修饰成员方法,成员变量

static修饰的成员变量共享

static修饰daxue时

Student.daxue=”长沙理工大学”

那么大学就被赋值了且被共享

那么在测试类中创建Student类的对象s1,s2

s1.show(); s2.show();输出的大学都是 长沙理工大学

并不需要s1 s2单独赋值

推荐使用类名调用

静态成员方法只能访问静态成员

多态

同一个对象,在不同时刻表现出来的不同形态

例如 猫 cat c=new 猫();

动物 animal a=new 猫();

猫不同时刻表现了不同形态,这就是多态

前提和体现

  1. 有继承/实现关系
  2. 有方法重写
  3. 有父类引用指向对象

多态中成员访问特点:

成员变量:编译看左边,运行看左边

成员方法:编译看左边,运行看右边

若父类有eat方法,而子类又重写了这个方法,那么a调用eat方法时会使用子类中的eat方法,若子类没有重写该方法,那么就会使用父类的eat方法,若父类没有eat方法,那么a就不能使用子类中的eat方法

多态的好处和弊端:

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

具体体现:定义方法的时候,使用父类型作为参数,将来在使用的时候,使用具体的子类型参与操作

弊端:不能使用子类特有的功能

多态中的转型:

向上转型:从子到父,父类引用指向子类对象

向下转型:从父到子,父类引用转为子类对象

Animal是父类,Cat是子类

Animal a=new Cat(); 向上转型

a.eat();会输出父类的eat方法,a.playGame();无法使用

1.eat();

向下转型:Cat c=(Cat)a;

c.eat(); 输出的是Cat的eat

c.playGame();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值