继承
-
继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模
-
extands的意思是“扩展”。子类是父类的扩展
-
Java中类只有单继承,没有多继承! 一个儿子只能有一个爸爸,但是一个爸爸可以有多个儿子
-
继承是类和类之间的一种关系,除此之外,类和类之间的关系还有依赖,组合,聚合等。
-
继承关系的俩个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示。
-
子类和父类之间,从意义上讲应该具有“is a”的关系。
//Person 人 : 父类 //在Java中,所有的类,都默认直接或间接继承Object public class Person /*extends Object*/{ //public //protected //default //private int money = 10_0000_0000; public void say(){ System.out.println("说了一句"); } }
//学生 is 人 :派生类,子类 // 子类继承了父类,就会拥有父类的全部方法! public class Student extends Person{ //Ctrl + H }
public class Application { public static void main(String[] args) { Student student = new Student(); student.say(); }
//学生 is 人 :派生类,子类
// 子类继承了父类,就会拥有父类的全部方法!
public class Student extends Person{
//Ctrl + H
}
- object类
- super
- 方法重写
super实例
public class Person /*extends Object*/{
public Person(){
System.out.println("Person无参执行了");
}
protected String name = "JoJo";
//私有的东西无法被继承
public void print(){
System.out.println("Person");
}
}
public class Student extends Person{
//Ctrl + H
private String name = "World";
public Student() {
//隐藏代码:调用了父类的无参构造
super();//调用父类的构造器,必须要在子类构造器第一行
System.out.println("Student无参执行了");
}
public void print(){
System.out.println("Student");
}
public void test(){
print();
this.print();
super.print();
}
public void test1(String name){
}
}
public class Application {
public static void main(String[] args) {
Student student = new Student();
//student.test1("世界");
//student.test();
}
}
方法重写实例
//重写是方法的重写,和属性无关
public class B {
public void test(){
System.out.println("B=>test");
}
}
//继承
public class A extends B{
//Override 重写
@Override //注解:有功能的注释!
public void test() {
super.test();
}
}
public class Application {
//静态的方法和非静态的方法区别很大!
//静态方法 //方法的调用只和左边的定义的数据类型有关
//非静态:重写
public static void main(String[] args) {
A a = new A();
a.test();//A
//父类的引用指向了子类
B b = new A();// 子类重写了父类的方法
b.test();//B
}
}