在Java中,派生类是从一个已存在的类(称为父类或基类)继承属性和方法的类,派生类可以添加新的属性和方法,也可以覆盖父类的方法,创建派生类的步骤如下:
1、定义一个父类
我们需要定义一个父类,父类可以包含属性和方法,我们可以定义一个名为Animal的父类,它有一个名为name的属性和一个名为speak的方法。
public class Animal { String name; public void speak() { System.out.println("Animal is speaking"); } }
2、定义一个派生类
接下来,我们需要定义一个派生类,派生类需要使用extends关键字来继承父类,我们可以定义一个名为Dog的派生类,它继承自Animal类。
public class Dog extends Animal { // 在这里添加Dog特有的属性和方法 }
3、添加派生类特有的属性和方法
在派生类中,我们可以添加新的属性和方法,这些新添加的属性和方法不会与父类中的属性和方法重名,我们可以为Dog类添加一个名为color的属性和一个名为bark的方法。
public class Dog extends Animal { String color; public void bark() { System.out.println("Dog is barking"); } }
4、使用派生类的对象访问父类和派生类的属性和方法
现在,我们可以创建一个Dog对象,并使用它来访问Animal和Dog类的属性和方法,由于Dog继承了Animal,所以Dog对象可以直接访问Animal类的属性和方法,Dog对象还可以访问其特有的属性和方法。
public class Main { public static void main(String[] args) { Dog dog = new Dog(); dog.name = "Buddy"; dog.color = "Brown"; dog.speak(); // 调用父类的speak方法 dog.bark(); // 调用派生类的bark方法 } }
5、覆盖父类的方法(可选)
如果需要在派生类中使用与父类相同的方法名,但实现不同的功能,可以使用@Override注解来覆盖父类的方法,覆盖后的方法将不再继承自父类,而是直接继承自Object类,我们可以让Dog类的bark方法输出不同的内容。
public class Dog extends Animal { String color; @Override public void speak() { System.out.println("Dog is speaking"); } @Override public void bark() { System.out.println("Woof! Woof!"); } }
6、构造方法的使用(可选)
在派生类的构造方法中,可以使用super关键字来调用父类的构造方法,这样可以确保父类的初始化工作得到执行,我们可以在Dog类的构造方法中调用Animal类的构造方法。
public class Dog extends Animal { String color; public Dog(String name, String color) { super(name); // 调用父类的构造方法 this.color = color; // 设置Dog特有的属性color的值 } }
7、final关键字的使用(可选)
如果不想让派生类覆盖某个方法,可以在该方法前加上final关键字,这样,派生类就无法覆盖这个方法了,我们可以让Animal类的speak方法不可被覆盖。
public final void speak() { // 使用final关键字修饰speak方法,使其不可被覆盖 System.out.println("Animal is speaking"); }
8、abstract关键字的使用(可选)
如果想让派生类必须实现某个方法,可以在该方法前加上abstract关键字,这样,派生类就必须提供这个方法的实现,我们可以让Animal类提供一个抽象的eat方法。
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/227156.html