子类继承父类 用extends

/*
*子类继承父类 用extends 
*/
class FatherClass
{
int value ;
  public void f()
  {
  value = 100;
  System.out.println("value="+value);//在integer类中重写了toString方法 所以输出直接为数字
  }
}


class ChildClass extends FatherClass
{
int value ;
public void f()
{
super.f();//super调用父对象的方法,对子类f函数的扩展
value = 200;
System.out.println("Childvalue="+value);
System.out.println(super.value);
}
}
public class TestInherit
{
public static void main(String[] args)
{
ChildClass m = new ChildClass();
m.f();
}
}
### Java 子类继承父类的示例语法 在 Java 中,子类通过 `extends` 关键字继承父类。以下是关于子类继承父类的一些重要概念及其对应的示例代码。 #### 1. 基本继承结构 子类可以通过 `super()` 方法显式调用父类的构造函数,并传递必要的参数[^1]。如果没有显式的 `super()` 调用,默认会调用无参的父类构造函数。如果父类没有无参构造函数,则必须提供带参的 `super()` 调用来初始化父类实例。 ```java public class Parent { public Parent(String name) { System.out.println("Parent constructor called with name: " + name); } } public class Child extends Parent { public Child() { super("ChildName"); // 显式调用父类构造函数并传入参数 System.out.println("Child constructor called"); } } ``` #### 2. 多层继承 Java 支持多层继承,在这种情况下,子类不仅继承了直接父类的方法和属性,还可能间接继承更上一层祖先的内容[^2]。例如: ```java class Grandparent { public void grandMethod() { System.out.println("Grandparent method invoked."); } } class Parent extends Grandparent { public void parentMethod() { System.out.println("Parent method invoked."); } } class Child extends Parent { public void childMethod() { System.out.println("Child method invoked."); } public static void main(String[] args) { Child c = new Child(); c.grandMethod(); // 可以访问祖方法 c.parentMethod(); // 可以访问父类方法 c.childMethod(); // 访问自己的方法 } } ``` #### 3. 子类使用父类的依赖注入 在某些场景下,父类可能会持有某种依赖关系(如外部服务),而子类需要利用该依赖完成特定功能。此时可通过构造器或 setter 注入的方式共享依赖对象[^3]。 ```java class Dependency { public void performAction() { System.out.println("Dependency action performed."); } } class BaseClass { protected Dependency dependency; public BaseClass(Dependency dep) { this.dependency = dep; } public void useDependency() { if (dependency != null) { dependency.performAction(); } } } class SubClass extends BaseClass { public SubClass(Dependency dep) { super(dep); // 将依赖注入到基中 } @Override public void useDependency() { System.out.println("SubClass using dependency..."); super.useDependency(); } } ``` #### 4. 子类访问父类成员变量 根据父类成员变量的访问控制权限(private, protected 或 public),子类可以选择不同的方式来操作它们。对于私有字段,通常需借助 getter 和 setter 方法;而对于受保护或者公开的字段,则可直接引用[^4]。 ```java class SuperClass { private String secret = "Secret Data"; protected int number = 42; public String getSecret() { return secret; } } class DerivedClass extends SuperClass { public void displayInfo() { System.out.println("Protected variable value: " + number); System.out.println("Private field via accessor: " + getSecret()); } } ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值