实现继承的格式
继承通过extends实现
格式:class 子类 extends 父类 { }
举例:class Dog extends Animal { }
以下java 几个特点
- class不带(),方法带()
- 文件名要与class名一致(大小写敏感)
- 输出使用
S
ystem.out.println();S
是大写
示例代码
Parent.java
public class Parent {
public int num = 10;
public void show() {
System.out.println("父类");
}
}
Child.java
public class Child extends Parent{
public int num = 100;
public void method(){
System.out.println("子类");
}
}
ExtendsDemo.java
public class ExtendsDemo {
public static void main(String[] args) {
//创建一个父类对象
Parent parent = new Parent();
//调用父类的方法
parent.show();
// 创建一个子类对象
Child child = new Child();
// 调用子类的方法
child.method();
}
}
继承方位this
&super
关键字
- this&super关键字:
- this:代表本类对象的引用
- super:代表父类存储空间的标识(可以理解为父类对象引用)
- this和super的使用分别
成员变量:
- this.成员变量 - 访问本类成员变量
- super.成员变量 - 访问父类成员变量
成员方法: - this.成员方法 - 访问本类成员方法
Parent.java
public class Parent {
public int num = 10;
public void show() {
System.out.println("父类方法被调用");
}
}
Child.java
public class Child extends Parent{
public int num = 100;
public void method(){
System.out.println("子类方法被调用");
System.out.println("thisnum = " + this.num);
System.out.println("supernum = " + super.num);
}
}
ExtendsDemo.java
public class ExtendsDemo {
public static void main(String[] args) {
int num=1000;
//创建一个父类对象
Parent parent = new Parent();
//调用父类的方法
parent.show();
System.out.println("Miannum="+num);
// 创建一个子类对象
Child child = new Child();
// 调用子类的方法
child.method();
}
}
继承的好处和弊端(理解)
继承好处
- 提高了代码的复用性(多个类相同的成员可以放到同一个类中)
- 提高了代码的维护性(如果方法的代码需要修改,修改一处即可
继承弊端
- 继承让类与类之间产生了关系,类的耦合性增强了,当父类发生变化时子类实现也不得不跟着变化,削弱了子类的独立性
继承的应用场景:
使用继承,需要考虑类与类之间是否存在is…a的关系,不能盲目使用继承
is…a的关系:谁是谁的一种,例如:老师和学生是人的一种,那人就是父类,学生和老师就是子类