总结:java中的包与继承

mac2026-04-14  0

1.命令行下使用jdk运行包中的程序

命令行下使用jdk运行包中的程序取决于jvm的启动路径; (1)当java文件在如下目录时:C:\Users\lenovo\Test (2)当Java文件在:C:\Users\lenovo\Test\cn\xatu目录时,并且java文件中没有具体包的路径; 运行上述代码则需要命令行如下 : (3)当Java文件在:C:\Users\lenovo\Test\cn\xatu目录时,并且java文件中有具体包的路径; 运行上述代码则需要命令行如下 :

2.java中包的访问控制权限

继承

1.继承的目的:为了代码的复用,不需要有冗余的代码 2.关键字:extends 3.基本语法: 父类(基类 /超类); 子类(派生类);

4.(1)子类继承了父类除构造方法外的所有。 (2)Java 中一个子类只能继承一个父类。 (3)对于父类的 private 的字段和方法, 子类中是无法访问的。 (4)子类的实例中, 也包含着父类的实例. 可以使用 super 关键字得到父类实例的引用。

5.super关键字

(1)子类调用父类的方法:super.func(); (2)子类调用父类的属性:super.data; (3)子类调用父类的构造方法:super();必须放在第一行; 子类的构造,首先需要构造父类; (4)示例代码:

class Animal { protected String name; protected String sex; public Animal(String name, String sex) { this.name = name; this.sex = sex; } public void eat(String food) { System.out.println(this.name + "正在吃" + food); } } class Cat extends Animal{ private int age; public Cat(String name, String sex,int age) { //调用父类的构造方法====构造方法没有被继承,是被调用的 super(name, sex); this.age = age; } }

6.继承当中静态代码块与实例代码块的执行顺序:

class Animal { public String name; public int age; // public Animal() { // } static { System.out.println("Animal::static{}"); } { System.out.println("Animal::instance{}"); } public Animal(String name, int age) { // eat(); //构造方法内部可以发生多态 this.name = name; this.age = age; } public void eat() { System.out.println("Animal: eat()"); } } class Cat extends Animal { public String sex; static { System.out.println("cat::static{}"); } { System.out.println("cat::instance{}"); } public Cat(String name, int age, String sex) { super(name, age); this.sex = sex; } @Override public void eat() { System.out.println("Cat :: eat()"); } public void run() { System.out.println("Cat :: run()"); } } public class TestDemo1 { public static void main(String[] args) { Cat cat = new Cat("caocao", 19, "man"); System.out.println("=========================="); Cat cat1 = new Cat("caocao", 19, "man"); } }

代码执行结果: 注:1.执行父类静态代码块 2.执行子类静态代码块 3.执行父类实例代码块;执行父类构造代码块; 4.执行子类实例代码块;执行子类构造代码块; 5.静态代码块只执行一次。

7.final关键字:

(1)final 关键字, 修饰一个变量或者字段的时候, 表示 常量 (不能修改) (2)final 关键字也能修饰类, 此时表示被修饰的类就不能被继承---->final 关键字也能修饰类, 此时表示被修饰的类就不能被继承 (3)final 关键字也能修饰方法:该方法不能被覆写。

8.两种语义:

(1)组合表示 has - a 语义; (2)继承表示 is - a 语义;

最新回复(0)