/**
*
* teacher is a person
* student is a person
* 必须是符合 is a的关系 才能继承
*
* 继承的特点:
* 1/只有方法和属性才能被继承(但是要考虑权限的问题),构造器不能被继承的
* a/如果实例化子类对象的时候,父类默认找空的构造器
* b/如果实例化子类对象的时候,必须得找一个父类的构造器执行。(因为没父类就没有子类)
* 通过 super关键来指定,调用任何一个都可以
*
* 2/在java中继承是单继承(就是extends下只能一个)
* 3/任何一个类的父类都是 Object
*
*
* 方法的覆盖(重写):( override)
* 1.存在一个子类和父类,存在一个一模一样的方法,但是权限只能越来越大
*
* 简述override和overload的区别?(必考题)
* override指方法的覆盖,存在一个子类和父类,存在一个一模一样的方法,但是权限只能越来越大
* overload指方法的重载,在一个类中,方法名字是一样的,参数个数或是类型不一样的。
*
* 百分百考
* 简述 private,default ,protected,public之间的区别?
*
*
* 同一类中 同一包中 不同包子类中 所有的
* private *
* default * *
* protected * * *
* public * * * *
*
*
*什么样的关键字可以修饰类?
* public,default,
* final修饰一个类,代表是最终的类,不能被继承
* final修饰一个变量,代表是常量,不能被改变
* final修饰一个方法,代表是最终的方法,不能被覆盖
*
*
*
*/
final double PI=3.14;//常量的命名规范,所有的字母全大写
静态的方法访问外边的变量,这个变量也必须是静态的
*****************************************
package
org.jsoft.test;
/**
*
* 开发的时候,不建议这样去写
* 除非A,B,C三个类,关联性特别强
*
@author
Administrator
*
*/
public
class
A {
}
class
B{
}
class
C{
}
能产生三个class文件,但是不建议使用
==========================================
==========================================
public
class
Teacher {
private
String
name
;
private
int
age
;
int
i
;
//全局变量,不是属性,尽量不用
Teacher(){
//无参数的
//任何一个类都有一个这样的,默认的构造器
System.
out
.println(
"************************"
);
}
Teacher(String name){
//当一个类出现了一个非空参数的构造器,那么默认的空参数的构造器,将不存在,如果使用,必须显示指定
System.
out
.println(
"一个参数的构造器执行了"
);
this
.
name
=name;
}
//多个构造器放到一起,叫构造器的重载
//重载(overload)
//名字一样,参数的个数或是类型不一样
//功能一样的时候,可以考虑重载
public
void
setAge(
int
_age){
//封装
if
(_age>=18){
age
=_age;
}
else
{
age
=0;
System.
out
.println(
"您的年龄不合法"
);
}
}