活动地址:CSDN21天学习挑战赛
目录
关键字:package
关键字:import
继承
方法的重写
面向对象的特征二:继承性
关键字:package
1,package的使用
1、为了更好的实现项目中类的管理,使用package声明类和接口所属的包,声明在源文件的首行
2、包:属于标识符,遵循标识符命名规范
3、每有一个"."就代表一层文件目录
2,补充
同一个包下,不能命名同名的接口、类
不同包下,可以命名同名的接口、类
**
关键字:import
import的使用
1、在源文件中显式的使用import结构导入指定包下的类、接口,声明在包和类的声明之间,如果需要导入多个结构,则并列写出
2、如果使用的类或接口定义在java.lang包下或当前包下,可以省略import结构
3、如果在源文件中,使用了不同包下的同名的类,则至少有一个类要以全类名的方式显示
4、import static:导入指定类或接口中的静态结构
**
继承
1,继承的理解
1、减少了代码的冗余,提高了代码的复用性
2、便于功能的拓展
3、为之后多态性的使用提供前提
2,继承的格式
A:子类、派生类、subclass
B:父类、超类、基类、superclass
1、一旦子类A继承父类B之后,子类A就获取了父类B中声明的所有的属性、方法。
当父类中声明私有的private的属性或方法,子类继承父类后,仍然认为获取了父类的私有结构只是因为封装性的影响 使子类不得直接调用父类的私有结构。
2、子类继承父类之后,还有可以声明特有的属性和方法:实现功能的拓展。
class A extends B{
}
3,继承的规定
1、一个类可以被多个子类继承
2、单继承性:一个类只能有一个父类
3、子父类是相对的概念
4、子类直接继承的类:直接父类 间接继承的类:间接父类
5、子类继承父类后,就获取了直接父类和所有间接父类所声明的属性和方法
4,补充
1、如果我们没有显式声明一个类的父类,则此类继承于java.lang.Object类
2、所有java类(除java.lang.Object)都直接或间接继承于java.lang.Object类
**
方法的重写
1,概述
子类继承父类后,对父类中同名同参数的方法进行覆盖操作
所以,当子类重写父类的方法后,实际执行的是子类重写的父类方法
2,重写的规定
a、子类重写的方法的方法名和形参列表与父类被重写的方法的方法名和形参列表相同
b、子类重写的方法的权限修饰符不小于父类被重写的方法的权限修饰符
此外:子类不能重写父类中声明为private私有权限的方法
c、返回值类型
>父类被重写的方法的返回值类型是void,则子类重写的方法的返回值类型只能是void
>父类被重写的方法的返回值类型是A类型,则子类重写的方法的返回值类型可以是A类也可以是A类的子类。
>父类被重写的方法的返回值类型是基本数据类型(比如:double),则子类重写的方法的返回值类型必须是相同的基本数据类型(必须也是:double)。
d、子类重写的方法抛出的异常类型不大于父类被重写的方法抛出的异常类型
3,补充
子类和父类中同名同参数的方法要么都声明为非static的(考虑重写),要么都声明为static的(不是重写)。
4,举例
父类
public class Person { String name; int age; //构造器 public Person() { } public Person(String name, int age) { this.name = name; this.age = age; } //方法 public void eat() { System.out.println("吃饭"); } public void walk(int distance) { System.out.println("走了"+ distance + "米"); //通过walk调用私有的show方法 show(); } //私有方法 private void show() { System.out.println("我是一个人"); } public Object info() { return null; } }子类
public class Kid extends Person{ String phone; //构造器 public Kid() { } public Kid(String phone) { this.phone = phone; } //子类的方法 public void play() { System.out.println("玩" + major); } //子类重写父类的方法 public void eat() { System.out.println("吃水果"); } //无法对父类的 私有方法 重写 public void show() { System.out.println("孩子"); } //对public Object info()重写 public String info() { return null; } }
提醒:在发布作品前请把不用的内容删掉(活动地址请保留)



