1.方法重写override就是将父类中同方法名写在子类中。
2.
package desk1;
package desk1;
/**
* 测试继承instanceof1
* @author java小生
*
*/
public class instanceof1 {
public static void main(String[] args) {
Student student = new Student(18,"儿子",180,"Student");
System.out.println(student.age);
System.out.println(student instanceof Student);
System.out.println(student instanceof Person);
student.rest();
//System.out.println(student instanceof Student);
}
}
class Person {
int age;
String name;
int height;
public void rest()
{
System.out.println("你好!");
}
}
class Student extends Person{ //Student 继承父类Person
String ZY;
public Student(int age,String name,int height,String ZY) {
this.age = age;
this.name = name;
this.height = height;
this.ZY = ZY;
}
public void rest()
{
System.out.println("你好!!");
}
}
* 测试继承instanceof1
* @author java小生
*
*/
public class instanceof1 {
public static void main(String[] args) {
Student student = new Student(18,"儿子",180,"Student");
System.out.println(student.age);
System.out.println(student instanceof Student);
System.out.println(student instanceof Person);
student.rest();
//System.out.println(student instanceof Student);
}
}
class Person {
int age;
String name;
int height;
public void rest()
{
System.out.println("你好!");
}
}
class Student extends Person{ //Student 继承父类Person
String ZY;
public Student(int age,String name,int height,String ZY) {
this.age = age;
this.name = name;
this.height = height;
this.ZY = ZY;
}
public void rest()
{
System.out.println("你好!!");
}
}
3.
package desk1;
/**super父类的引用,继承树追溯问题
* @author java小生!
*
*/
public class super1 {
public static void main(String[] args) {
System.out.println("开始--");
new super3();
}
* @author java小生!
*
*/
public class super1 {
public static void main(String[] args) {
System.out.println("开始--");
new super3();
}
}
class super2{
public super2() {
//super();系统自动生成
System.out.println("创建父类构造器");
}
}
class super3 extends super2{
public super3() {
//super();系统自动生成
System.out.println("子类构造器");
}
}
运行输出:
开始--
创建父类构造器
子类构造器
class super2{
public super2() {
//super();系统自动生成
System.out.println("创建父类构造器");
}
}
class super3 extends super2{
public super3() {
//super();系统自动生成
System.out.println("子类构造器");
}
}
运行输出:
开始--
创建父类构造器
子类构造器
4.封装
编程中封装的具体优点:
1. 提高代码的安全性。
2. 提高代码的复用性。
3. “高内聚”:封装细节,便于修改内部代码,提高可维护性。
4. “低耦合”:简化外部调用,便于调用者使用,便于扩展和协作。
访问权限修饰符:
1. private 表示私有,只有自己类能访问
2. default表示没有修饰符修饰,只有同一个包的类能访问
3. protected表示可以被同一个包的类以及其他包中的子类访问
4. public表示可以被该项目的所有包中的所有类访问
类的属性的处理:
1. 一般使用private访问权限。
2. 提供相应的get/set方法来访问相关属性,这些方法通常是public修饰的,以提供对属性的赋值与读取操作(注意:boolean变量的get方法是is开头!)。
3. 一些只用于本类的辅助性方法可以用private修饰,希望其他类调用的方法用public修饰。
package desk1;
编程中封装的具体优点:
1. 提高代码的安全性。
2. 提高代码的复用性。
3. “高内聚”:封装细节,便于修改内部代码,提高可维护性。
4. “低耦合”:简化外部调用,便于调用者使用,便于扩展和协作。
访问权限修饰符:
1. private 表示私有,只有自己类能访问
2. default表示没有修饰符修饰,只有同一个包的类能访问
3. protected表示可以被同一个包的类以及其他包中的子类访问
4. public表示可以被该项目的所有包中的所有类访问
类的属性的处理:
1. 一般使用private访问权限。
2. 提供相应的get/set方法来访问相关属性,这些方法通常是public修饰的,以提供对属性的赋值与读取操作(注意:boolean变量的get方法是is开头!)。
3. 一些只用于本类的辅助性方法可以用private修饰,希望其他类调用的方法用public修饰。
package desk1;
/**封装的使用细节
* @author java小生!
*
*/
public class Person {
public static void main(String[] args) {
Person1 person1 = new Person1();
//person1.age 错误,私有属性不能调用
person1.setAge(140); //调用公有方法
}
}
class Person1{
private int age; //定义私有属性
private String name;
private int height;
private boolean man;
//右键source ...setter...自动生成get set,便于操作
public int getAge() { //通过调用公开方法调用
return age;
}
public void setAge(int age) {
if(age>=1&&age<=130) {
this.age = age;
}
else {
System.out.println("请输入正确的年龄!");
}
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
public boolean isMan() { //注意boolean属性get是is开头
return man;
}
public void setMan(boolean man) {
this.man = man;
}
}
* @author java小生!
*
*/
public class Person {
public static void main(String[] args) {
Person1 person1 = new Person1();
//person1.age 错误,私有属性不能调用
person1.setAge(140); //调用公有方法
}
}
class Person1{
private int age; //定义私有属性
private String name;
private int height;
private boolean man;
//右键source ...setter...自动生成get set,便于操作
public int getAge() { //通过调用公开方法调用
return age;
}
public void setAge(int age) {
if(age>=1&&age<=130) {
this.age = age;
}
else {
System.out.println("请输入正确的年龄!");
}
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
public boolean isMan() { //注意boolean属性get是is开头
return man;
}
public void setMan(boolean man) {
this.man = man;
}
}