/*继承-java只有单继承
如果你创建了很多个class,但是之间有很多相同的成员变量和成员方法,修改的时候又要多处修改好麻烦,
此时就可以创建多一个类来存储这些重复的东西,统一管理。相当方便.
*/
/*
super方法
调用父类的构造方法
如果想调用带参数的父类构造方法,只需要使用super(...)即可.
如果需要调用同名的父类中的方法,使用super(). 即可.
*/
/*
注意:static修饰词无所谓是继承的还是现场实例化的,凡是用到我static所在类的,都只有唯一一个!
*/
/*
访问同名属性采用就近原则
直接写就是访问当前的代码块
this就是访问当前类中的属性
supper访问父类中的属性
*/
/*
继承中的构造:通过构造子类对象的时候都会调用父类的构造方法,显式隐式
如果父类设置了有参数的构造方法,则必须用supper(...),系统不会默认调用一个
*/
/*
可以调用其他构造方法,使用this(...)即可
但是在子类又调用父类构造方法,又调用子类的另一个构造方法,是不可以的。
this(..)和super(..)都必须要放在第一条语句中,所以不能!
*/
/*
重写方法
(返回值 方法名 参数)三要素
只要子方法中有方法 ?? 和父类中的一样,则代表父类的方法被重写了,按照子类的为准
注意 1 不能重写父类中的private方法
2 不能重写为权限更低的方法,例如public不能重写为private
*/
/*
重载方法 -
final修饰的是
类 :不能被继承的类
方法:不能被重写的方法
变量:不能被重新赋值 (常量)
常量 : 字面值常量 子定义常量(final)
与重写方法不同的是,重写方法是在子类父类里边的,但是重载方法是在同一个类当中的
参数 方法名 返回值
不一样 一样 不要求
*/
public class Learn06{
public static void main (String[] as){
Teacher tt = new Teacher();
//System.out.println(tt.getName());
}
}
class Person{//父类
private static String name;
public Person(){
System.out.println("hello");
}
public Person(String name){
System.out.println(name);
setName(name);
}
public void setName(String name){
this.name=name;
}
public String getName(){
return this.name;
}
private void sayHello(){
System.out.println("你好ya 嘿嘿!~");
}
public void marked(){
System.out.println("父类的narked方法");
}
}
class Teacher extends Person{
private int level;
public Teacher(){
super("杰杰");//调用父类的构造方法2
marked();//调用子类中的marked
super.marked();//调用父类中的marked
Person ps = new Person();
Person ps1= new Person();
ps.setName("-wwzzjj-");
ps1.setName("aaa");
System.out.println("----" + ps.getName() + "---"+ super.getName());
System.out.println("----------");
sayHello();
}
public void marked(){
System.out.println("子类的narked方法");
}
}