java的继承特点总结

1、java通过继承实现代码的复用,被继承的成为父类或者超类(superclass),由继承而得到得到类称为子类(subclass)

2、一个父类可以有很多子类,但一个类只有一个直接父类。父类是所有子类的公共成员的集合,而每一个子类则是父类的特殊化

3、子类继承父类的成员变量和成员方法,同时修改父类的成员变量或重写父类的方法,还可以添加新的成员变量和成员方法。

class SubClass extends SuperClass
{

   
}

4、所有类都是java.lang.Object类的子类

5、子类的每个对象也是其父类的对象,这是继承的“即是”性质,

      例如,程序员(subclass)继承于人类(superclass),所以在任何使用人类(superclass)实例的地方(例如让一个人吃东西),都允许使用程序员(subclass)(程序员也是人,所以也要吃东西)。

6、父类的对象不一定是他的子类的对象

例如请一个人编程,程序员(subclass)可以,但人类(superclass)不一定可以。

7、子类可以从父类那里继承所有非private的成员作为自己的成员。

package basics;

import java.util.jar.Attributes.Name;

class Person {
    
	private String name ="doujiao";
    protected   int age = 100;
    public Person() {
    	System.out.println("父类的构造方法被调用");
    }
    public Person(String name,int age) {
    	this.age=age;
    	this.name=name;
    }
    protected void show() {
		System.out.println("姓名"+name+"年龄"+age);
	}     
}
class Student extends Person{
	
	private String dep;
	int age =158;

	public Student(String xm,String de) {
		age=550;
		dep=de;
		super.age=666;
		System.out.println("子类中的成员变量age="+age);
		System.out.println(name);//此处出错,代表子类无法继承父类的private成员
		super.show();
		System.out.println("系别为"+dep);
	}
	public Student() {
		
	
	}
}
public class Testc{
public static void main(String[] args){
       Student student = new Student("李武","信息系"); 
       student.show();
       }
}

8、java程序在执行子类的构造方法之前,会先调用父类中没有参数的构造方法,其目的是为了帮助继承自父类的成员做初始化操作,除非用super()去选择调用哪些构造方法,否则肯定调用无参构造方法。

9、构造方法是不能被继承的,但可以被子类调用

10、调用父类构造方法的super()语句必须写在子类构造方法的第一行,否则编译时将出现错误信息

11、在子类中访问父类的构造犯法,其格式为super(参数列表)。super可以重载,也就是说super()会根据参数的个数和类型,执行父类相应的构造方法。

12、super()与this()均在构造方法内的第一行,也就是由于这个原因,它们两个无法同时存在于同一个构造方法

13、与this一样,super指得也是对象,所以不能在static环境中使用,包括静态方法和静态初始化器(static语块)。

猜你喜欢

转载自blog.csdn.net/rngweskt/article/details/82107162