继承是指我有多个类,而且这些类都有相同的属性和方法的时候就可以使用继承关系
java提供了一个关键字用来表示继承关系:extends
写法:class B extends A{} 表示B类继承自A类
这里的B称之为:子类,派生类
这里的A称之为:父类,基类或者超类
子类只能继承父类的成员变量和成员方法,并且不是私有的,如下
class Animal{
String name;
int age;
public void eat(){
System.out.println("吃饭");
}
public void sleep(){
System.out.println("睡觉");
}
}
class Dog extends Animal {
//子类相当于这里有一份父类中的非私有成员
public void lookDoor(){
System.out.println("看家");
}
}
class Cat extends Animal{
}
public class ExtendsDemo1{
public static void main(String[] args) {
Dog dog = new Dog();
dog.eat();
dog.sleep();
System.out.println(dog.name);
System.out.println(dog.age);
}
}
类与类之间继承只能有一个直接父类,但是可以进行多重继承,形成继承体系
class Mother{
}
class GrandFather{
}
class Father extends GrandFather{
}
class Son extends Father{
}
//这样是不行的
//class Son extends Mother,Father{
//
//}
public class ExtendsDemo2 {
public static void main(String[] args) {
}
}
子类方法查找变量的规则符合就近原则:
1.会先在自己的方法中进行查找,如果找到就直接使用
2.如果自己的方法中找不到,就去当前类的成员变量中找
3.如果当前的成员变量也没有,就去父类中的成员变量中去找
class Fu2{
int a = 10;
}
class Son2 extends Fu2{
int a = 20;
public void fun1(){
int a = 30;
System.out.println(a); // 30
System.out.println(this.a); // 20
// Fu2 fu2 = new Fu2();
// System.out.println(fu2.a);
System.out.println(super.a); // 10
}
}
public class ExtendsDemo4 {
public static void main(String[] args) {
Son2 son2 = new Son2();
son2.fun1();
}
}
标签:关系,java,继承,System,public,extends,println,class,out
From: https://www.cnblogs.com/ndmtzwdx/p/18429253