代码实现
首先创建一个父类
package com.继承;public class Person { private String name; private Integer age; public Person() { } public Person(String name, Integer age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public String toString() { return "Person{" + "name='" + name + ''' + ", age=" + age + '}'; }}
创建一个子类 并且继承父类,继承父类 就拥有父类的全部属性和方法 并且自己也有自己独有的方法
package com.继承;public class Student01 extends Person{//学生类继承人 这个类 就拥有人这个类的全部属性和方法 //子类自己独有的方法 public void study(){ System.out.println("学生学习"); }}
测试类
package com.继承;public class Test { public static void main(String[] args) { Student01 student01 = new Student01();//创建一个子类对象 //子类调用父类的方法 student01.setName("zhongy"); student01.setAge(15); //子类自己独有的方法 student01.study(); System.out.println(student01); }}
继承的好处
实现了代码的复用性提高了代码的维护性
继承的弊端
让代码之间有了很高的耦合性
继承的特点
java中只支持单继承 不能多继承java中可以实现多层继承 自继承父 父类继承祖父类
变量的访问特点
this关键字
父类中的属性
public class Person { private String name; private Integer age; public int anInt=100;
子类中的属性
public int anInt=50; //子类自己独有的方法 public void study(){ int anInt=10; System.out.println(anInt); System.out.println("学生学习"); }
测试
//子类自己独有的方法public void study(){ int anInt=10; System.out.println(anInt); System.out.println("学生学习");}
调用子类输出的是anint是10
public int anInt=50; //子类自己独有的方法 public void study(){ int anInt=10; System.out.println(this.anInt); System.out.println("学生学习"); }
输出的是50super关键字 ,调用的父类中的属性
//子类自己独有的方法public void study(){ int anInt=10; System.out.println(super.anInt); System.out.println("学生学习");}
输出的是100,
方法重写
子类重写父类中的方法 不仅拥有父类方法和属性 还能加上自己独特的属性 但是父类中私有方法不能让子类去重写子类重写父类的方法是不能比父类的修饰权限低
权限修饰符
final关键字
注意
final修饰基本数据类型 数据值不能改变final修饰引用数据类型 引用数据类型new出来的对象地址值不能改变 但是对象地址值的值可以改变
static关键字