封装
public class Pet {
private String name;
private int age;
//无参构造
public void shout(){
System.out.println("叫了一声");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
/*
1.提高程序的安全性,保护数据
2.隐藏代码的实现细节
3.统一接口
4.系统可维护增加了
*/
public class Application {
public static void main(String[] args) {
Pet pet=new Pet();
pet.setName("旺财");
String name=pet.getName();
System.out.println(name);
}
}
继承
object类
public class Person {
private int money=10_0000_0000;
public void say(){
System.out.println("说了一句话");
}
}
public class Application {
public static void main(String[] args) {
Student student=new Student();
student.say();
student.getClass();
}
}
public class Student extends Person {
}
super
super-this 父-当前的
public class Application {
public static void main(String[] args) {
Student student=new Student();
// student.say();
// student.test("宏伟");
// student.test1();
}
}
public class Person {
public Person() {
System.out.println("Person无参执行了");
}
private int money=10_0000_0000;
protected String name="hongwei";
public void say() {
System.out.println("Person");
}
}
/**
* super注意点
* super调用父类的构造方法,必须在构造方法的第一个
* super必须只能出现在子类的方法或者构造方法中
* super和this不能同时调用构造方法
* VS this
* this:代表本身调用者这个对象
* super:代表父类对象的应用
* 前提
* this 没有继承也可以使用
* super 只能在集成的基础上使用
* 构造方法
* this调用本类
* super调用父类
*/
public class Student extends Person {
private String name="dashuai";
public void test(String name){
System.out.println(name);
System.out.println(this.name);
System.out.println(super.name);
}
public void test1(){
say();
this.say();
super.say();
}
public Student() {
System.out.println("Student无参执行了");
}
public void say(){
System.out.println("Student"); }
}
重写
public class B {
public static void test(){
System.out.println("B=>test()");
}
}
public class A extends B {
public static void test(){
System.out.println("A=>test()");
}
}
public class Application {
public static void main(String[] args) {
//方法的调用纸盒左边、定义的数据类型有关
A a=new A();
a.test();
//父类的引用指向了子类
B b=new A();
b.test();
}
}
public class Application {
//静态方法和非静态方法区别很大
//重写只和非静态有关、父类公有只能重写公有的(其余范围可扩大但不可缩小),需要继承关系,抛出异常的范围可以被缩小,不可扩大:
public static void main(String[] args) {
//方法的调用纸盒左边、定义的数据类型有关
A a=new A();
a.test();
//父类的引用指向了子类
}
}